Office関連

[VBA]自動的にフォントサイズを調整する疑似テキストボックス

前回と同様、環境依存つながりでmougの給湯室に書いたコードを載せておきます。

'**************************************************************
'  スクロールバーが表示されるほど文字量が増えたら
'  自動的にフォントサイズを調整する疑似テキストボックスのサンプル
'
'  2015/9/9 - @kinuasa
'
'  要参照
'    Microsoft HTML Object Library
'  要配置
'    WebBrowserコントロール(WebBrowser1)(必須),
'    CommandButtonコントロール(CommandButton1)(確認用なので必須ではない)
'**************************************************************

Option Explicit

Private WithEvents HTMLTextArea As MSHTML.HTMLTextAreaElement
Private TextAreaFontSize As Long
Private Const DefaultStyle As String = "width:100%;height:100%;border:none;overflow:auto;font-family:'MS UI Gothic';" 'スタイルは好みに応じて変更

Private Sub UserForm_Initialize()
  TextAreaFontSize = 20 '初期値
  With Me.WebBrowser1
    .AddressBar = False
    .MenuBar = False
    .StatusBar = False
    .Navigate "about:blank"
    While .Busy Or .ReadyState <> READYSTATE_COMPLETE
      DoEvents
    Wend
    With .Document
      .body.Scroll = "no"
      .body.Style.cssText = "margin:0;padding:0;"
      Set HTMLTextArea = .createElement("textarea")
      HTMLTextArea.Style.cssText = DefaultStyle & "font-size:" & TextAreaFontSize & "pt;"
      .body.appendChild HTMLTextArea
    End With
  End With
End Sub

Private Sub HTMLTextArea_onkeydown()
  If TextAreaFontSize > 10 Then 'フォントサイズの最小値指定
    With HTMLTextArea
      If HTMLTextArea.offsetHeight < HTMLTextArea.ScrollHeight Then
        TextAreaFontSize = TextAreaFontSize - 2
        .Style.cssText = DefaultStyle & "font-size:" & TextAreaFontSize & "pt;"
      End If
    End With
  End If
End Sub

Private Sub CommandButton1_Click()
  With HTMLTextArea
    MsgBox .Value, vbInformation + vbSystemModal '確認用
    .Value = ""
    TextAreaFontSize = 20
    .Style.cssText = DefaultStyle & "font-size:" & TextAreaFontSize & "pt;"
  End With
End Sub

HTMLTextAreaInput_01

動きとしては面白いのですが、実際の業務で使うのはあまりオススメできません。
「こういうこともできるんだ!」と、楽しむくらいが良いと思います。

[VBA]ユーザーフォームでBootstrapを使う。前のページ

ドラッグ&ドロップした画像をクリップボードにコピーするバッチファイル次のページ

関連記事

  1. Office アドイン

    Office アドインの概要と開発方法を学ぶための自習書

    2018年10月27日(土)、品川の日本マイクロソフト本社で「2018…

  2. アイコン一覧

    Office 365アイコン(imageMso)一覧(D)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  3. Office関連

    [Word VBA]ルビ(ふりがな)ダイアログの操作に挑む

    2016/10/28 追記:改良版のマクロを書きました。…

  4. Office関連

    日経ソフトウエア 2014年 10月号 「VBAでExcelを業務アプリ化」

    購読している雑誌、日経ソフトウエア 2014年 10月号に「イベントプ…

  5. Office アドイン

    [Office用アプリ]ユーザー設定を保存する。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP