プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。
マクロやVBAの知識が乏しいため非常に困っています。

エクセルにてシート(1)から
文字をとっているシート(2)があるのですが
文字数が多くなるとシート(2)のほうがセルからはみ出てしまいます。

そこで文字数でフォントサイズを変更したいと考えました。
19文字以上ならサイズを14に。。という具合に自動でできるコードを
ご教授願えないでしょうか?
よろしくお願いします。
また、それ以外に良いものがあればそれを採用したいとも考えています。

以下条件になります。
シート(1)のA1の文字が15文字以下ならシート(2)のB2のサイズを18に

シート(1)のA1の文字が16文字以上ならシート(2)のB2のサイズを16に

シート(1)のA1の文字が19文字以上ならシート(2)のB2のサイズを14に

A 回答 (3件)

こんにちは。



実際のシートの作動はもう少し複雑だろうとは思いますが、質問に対しては、このようなコードです。

''シートモジュール(シートタブ-右クリック-コードの表示)
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim sTxt As String
 Dim fnt As Integer
 Dim opRng As Range
 Set opRng = Worksheets(2).Range("B2") '対象のセル

 If Target.Address <> "$A$1" Then Exit Sub  'A1以外は除外
 If Target.Count > 1 Then Exit Sub '複数のセルの時除外
 If Target.Value = "" Then Exit Sub '空白または削除では作動しません。
 If opRng.Value = "" Then Exit Sub '対象セルに文字がなければ、実行しません。
 sTxt = Range("A1").Value
 Select Case Len(sTxt)
  Case Is >= 19: fnt = 14
  Case Is >= 16: fnt = 16
  Case Is >= 1: fnt = 18
 End Select
 opRng.Font.Size = fnt
End Sub
    • good
    • 1
この回答へのお礼

とても参考になりました。
ありがとうございます。
これをもとに試行錯誤してみます!

お礼日時:2018/10/05 13:59

そこまでしなくても、該当のセルを選んで右クリック→セルの書式設定→配置タブの「縮小して全体を表示する」にチェックを入れればよいです。

    • good
    • 0
この回答へのお礼

意図していた回答とは違いますがありがとうございました。

お礼日時:2018/10/05 14:01

Excelマクロの入門書を何か1冊入手されるとよいです。


もしくは同様の学習Webサイトですね。

Googleなどで「VBA フォントサイズ」とか「VBA フォントサイズ 取得」とか「VBA フォントサイズ 変更」といった簡単なキーワードで検索すると説明サイトの該当ページやVBAサンプルを紹介しているサイトの該当ページがヒットするはずです。
お試しください。

それで意図したページが見つかった場合はそのページにあるHOMEといったリンクをクリックするとホームページへ飛び、どのような内容のサイトかがわかります。勉強するのに役立ちそうなサイトでしたらBookmarkして利用されるとよいです。
同様に「VBA 入門」といったキーワードで勉強によさげなサイトを探すのも方法です。
個人的には本が参照性が高く便利とは思いますが。

参考まで。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
1冊購入してみようと思います。

お礼日時:2018/10/05 14:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A