前回と同様、環境依存つながりで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
動きとしては面白いのですが、実際の業務で使うのはあまりオススメできません。
「こういうこともできるんだ!」と、楽しむくらいが良いと思います。
この記事へのコメントはありません。