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関連

    “元に戻す”履歴に文字列をセットするPowerPointマクロ

    PowerPointマクロでは、Presentationオブジェクトの…

  2. Office関連

    【2018年9月版】Microsoft Office関連の公式リンクまとめ

    Ignite 2018やOffice 2019のリリースがあり、Off…

  3. Office関連

    Custom UI Editorの最新版がGitHubで公開されました。

    下記記事等で紹介している、リボンUIをカスタマイズするためのツール「C…

  4. Office関連

    PDFファイルのフィールドを読み取り専用にするVBAマクロ

    「PDFのフィールドに値を入力した後、読み取り専用にするにはどうしたら…

  5. アイコン一覧

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

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

  6. Office関連

    [OneNote]クリップボードから新しいページに貼り付け

    何かをメモするとき、ファイルを保存するとき等々、私はよくOneNote…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP