三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

はてなの質問に答えてみた Excel VBA セル内を改行(VBLF)で区切られた文字列のフォントを行単位で変更するテスト

こりずに はてなの質問
q.hatena.ne.jp
https://q.hatena.ne.jp/1576623097
にチャレンジしてみた↑質問が載ってます。
※他の回答やコメント含めてみてください。

いつものデバッグ風景・・・ミスしまくりで恥ずかしいけど・・・
www.youtube.com
https://www.youtube.com/watch?v=g3KKlVqscDE
↑失敗したデバッグ解説最初から※失敗を時間のある時に見て笑ってください・・・


やったこと
1.VBAのSplit関数を使用して、セル内改行された文字列を vbLf で区切り取得
strBOX = Split(objRANGE.Cells(1, 1), vbLf)

2.Characters(Start:=開始位置, Length:=文字数).Font.Size = フォントサイズ
セル内のフォントを部分的に変更したかったので、
マクロ記録された .Characters を使用する

3.エラーチェックで分割された文字列の数を数える
必ず固定の改行があると決めつけると痛い目みるので、
UBound(strBOX) などで、改行の行数をチェックしてみた。

Option Explicit

Sub main()

    Dim y As Integer
    
    For y = 3 To 30  'a3からA30までループ
        Call test_font_resize(Cells(y, "A"))
    Next y

End Sub


'セル Rangeを受け取り 改行で区切られた文字列のフォントを変更するテスト
Sub test_font_resize(objRANGE As Range)

    Dim strBOX As Variant  '改行vbLfで分割後に入れる配列
    Dim nSTART As Integer  'フォント変更位置
    Dim nLEN As Integer    '文字数
    Dim i As Integer       'ループのカウンター
    
    '分割後のフォントサイズ
    Dim nSIZE(3) As Integer
    
    nSIZE(0) = 20   '文字のサイズ、一行目
    nSIZE(1) = 14    '2行目
    nSIZE(2) = 16   '3行目
    
    'セル内改行 vbLfで区切られているので、分割しstrBOXへ格納
    strBOX = Split(objRANGE.Cells(1, 1), vbLf)
    'ubound(strBOX) で↑の結果、カズがわかります
    
    'フォントのサイズを変更する
    nSTART = 1
    For i = 0 To 2  '三行目までサイズ変更
        If i > UBound(strBOX) Then Exit For '配列、改行の数をチェック
        nLEN = Len(strBOX(i))
        objRANGE.Cells(1, 1).Characters(Start:=nSTART, Length:=nLEN).Font.Size = nSIZE(i)
        nSTART = nSTART + nLEN + 1  '↑上の文字数と改行の文字一つを+
    Next i
    
End Sub

まだまだ、運用時にエラーがあるかもしれませんが、
解決の糸口、サンプルとなれば幸いです。

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)