• ベストアンサー

【Excel2003】マクロでテキストボックス編集

お世話になります。 マクロを使ってある条件ごとにシート内全てのテキストボックスのフォントを変更するようにしたいと考えています。 条件 ・テキストボックス内に(1)がある場合はテキストボックス内のフォントをMS明朝にする ・テキストボックス内に(2)がある場合はテキストボックス内のフォントをMSゴシックにする イメージとしては、 (1)あいうえお←MS明朝 (2)あかさたな←MSゴシック です。 この場合のマクロのプログラムを教えてください。 お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

あっているかどうか試してください。 Dim tbx As TextBox For Each tbx In ActiveSheet.TextBoxes If InStr(tbx.TEXT, "あいうえお") > 0 Then tbx.Font.Name = "MS 明朝" ElseIf InStr(tbx.TEXT, "あかさたな") > 0 Then tbx.Font.Name = "MS ゴシック" End If Next

elkheart
質問者

補足

早速の回答ありがとうございます。 出来ました!! ありがとうございます。 もしよければまた教えてほしいのですが、 上記の例で あいうえお←MS 明朝 あかさたな←MS ゴシック でお願いしましたが、 例えば上記の「あ」のみフォントをHGP創英角ポップ体にすることも可能でしょうか? 何度もすいませんが教えてください。

その他の回答 (2)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.3

複数ある場合にも対応してみました。 ★1の行は不要なら消してください。 あるいはフォント名を正しい名前に変えて使ってください。 Dim tbx As TextBox Dim txt As String Dim s As Long txt = "あ" For Each tbx In ActiveSheet.TextBoxes If InStr(1, tbx.Characters.TEXT, txt) > 0 Then tbx.Font.Name = "MS 明朝" '★1 Do s = InStr(s + 1, tbx.Characters.TEXT, txt) With tbx.Characters(s, Len(txt)) .Font.Name = "HGP創英角ポップ体" End With Loop While InStr(s + 1, tbx.Characters.TEXT, txt) > 0 End If Next

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

≫No.1 この回答への補足 Dim tbx As TextBox Dim txt As String Dim s As Long txt = "あ" For Each tbx In ActiveSheet.TextBoxes If InStr(tbx.Characters.TEXT, txt) > 0 Then tbx.Font.Name = "MS 明朝" s = InStr(tbx.Characters.TEXT, txt) With tbx.Characters(s, Len(txt)) .Font.Name = "HGP創英角ポップ体" End With End If Next 上記サンプルでは文字列内に該当文字が複数ある場合には対応していません。 複数ある場合はtbx.Charactersをループすることになると思います。

関連するQ&A

  • 【Excel2003】テキストBOXを認識しない

    VBAを使用してテキストボックス内のフォントを統一するプログラムを書きました。 でも同じシート内でもテキストBOXと認識してフォントを変更してくれるときと、 テキストBOXと認識しなくてフォントを変更してくれないときがあります。 何故でしょうか?分かる方教えてください。 プログラムは以下のよう書きました。 --------------- Dim tbx As TextBox For Each tbx In ActiveSheet.TextBoxes tbx.Font.Name = "MS 明朝" Next ---------------

  • エクセル2003のテキストボックスの書式設定について

    エクセル2003でテキストボックスを使っていますが、フォントやサイズを固定(MS明朝、11とか)したいのですが、うまくいきません。テキストボックスでMS明朝、11に書式設定後に、新しいテキストボックスを作るとMSゴシック、9になってしまいます。 どうしてなんでしょう? 宜しくお願いします。

  • Excelマクロ教えてください。

    いつも大変お世話になっております。 あるシートにあるフォントのすべてをMSゴシックにしたいのですが、 マクロ記録→全選択してフォント変更→記録解除 で下記のマクロができました。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2007/11/21 ユーザー名 : TEST ' ' Cells.Select With Selection.font .Name = "MS ゴシック" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End Sub 全選択せずに、あるシートすべてのフォントを変更する方法はありますか? シートのフォントを変更するだけの目的です。 よろしくお願いします。

  • accessのレポート上のフォント

    いつもお世話になっております。 さて、accessのフォーム上の入力値によってひとつのテキストボックスのフォントをvbaで変更する事は可能なのでしょうか? 例) フォーム上のテキストボックス1の値が ・1の場合 レポート上のテキストボックス1のフォント→MS明朝 ・2の場合 レポート上のテキストボックス1のフォント→MSゴシック、太字 のような事をやりたいのです。 また上記ができればその方向で、代案としてはレポート上にテキストボックスを2つ重ねてvisbleで表示を分けるのが一番いいかな、と思うのですが、何分数が多いため躊躇しております。 他に考えられるいい案はございますでしょうか? よろしくお願いいたします。

  • テキストボックス内のテキストを変更させない方法

    <div align="center"><center> <table border="0" cellpadding="0" cellspacing="1" width="80%"> <tr> <td width="33%"></td> <td width="33%"><font face="MS Pゴシック" size="2"> <!--webbot bot="HTMLMarkup" startspan --></font> <FORM method="POST"> <p><font face="MS Pゴシック" size="2"> <textarea name="…………" rows="13"cols="67"></textarea> </font></p></FORM> <font face="MS Pゴシック" size="2"> <!--webbot bot="HTMLMarkup" endspan i-checksum="15378" --> </font></td><td width="34%"> </td></tr> </table> </center></div> このテキストボックス内のテキストを変更できなくしたいのですが どこを変更すればよいのでしょうか。 どなたかご教授ください。 よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • 印刷できないテキストボックス

    モニター(印刷プレビュー)では入っている(見えている)のに、はいっている文字を印刷しないテキストボックスがあります。 特殊なフォントを使っているわけでは、ありません。 (HG行書とMS明朝) なにが原因だとおもいますか?

  • Excel2003でテキストボックスの文字が背景とずれる

    Excel2003で困っています。 罫線で表を作り、その上にテキストボックスの文字を配置すると、画面上は良いのですが、プレビューしたり印刷するとずれてしまいます。 使っているフォントは等幅のMS明朝です。 OSはXP HomeEditionです。 ずれなくする方法を教えてください。 よろしくお願いします。

  • Excel2013 テキストボックスについて

    お世話になります。 テキストボックスに文字を入力した場合は、その文字を選択するとメニューが出るため、そこからフォントサイズの調整ができるのですが、直接文字を入力するのではなく、数式バーに=A1と入力し、A1セルの数値や文字等を参照してテキストボックスに表示させる方法だと、テキストボックス内の文字等を選択することができずフォントサイズを調整できませんでした。 テキストボックスを右クリックして、図の書式設定から探したのですが、フォントサイズを設定する項目が見当たりませんでした。 フォントサイズを調整するにはどうすればいいでしょうか。 よろしくお願いします。

  • 作ったマクロを複数のシートで実行できるようにしたい。

    excelで以下のマクロを作りました。 Sub Macro1()   Dim 文字 As Range   For Each 文字 In Range("e6:ai21")    Select Case 文字.Text     Case "|"      文字.Font.Name = "MS Pゴシック"      文字.Font.Size = 35     Case Else      文字.Font.Name = "MS明朝"      文字.Font.Size = 11    End Select    Next 文字   End Sub 1つのシートのセル範囲(e6:ai21)に対するマクロです。 このマクロを、シートが10個(sheet1~sheet10)ありその内の8個(sheet3~sheet10に1度にできるようにするにはどうすればいいのですか。 教えてください。よろしくお願いします。

  • テキストボックスのフォンを変更するマクロ

    エクセルで沢山のテキストボックスのフォントを一括してMSPゴシックに変更するマクロとして以下を実行すると、処理自体は行われているようなのですが結果は元のフォンのままです。 Sub fonto() Dim con As Integer For con = 1 To ActiveSheet.TextBoxes.Count ActiveSheet.TextBoxes(con).Characters.Text = "" With Selection.Characters(Start:=1, Length:=1).Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 14 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With Next con End Sub どこがおかしいのでしょうか?  また、これだと文字を削除してしまうので、削除しない方法も知りたいのですが。

専門家に質問してみよう