
No.6ベストアンサー
- 回答日時:
なにか、話が違ってきてしまっていますね。
確かに、文字を入れるということでしたら、
Worksheets("Sheet1").TextBoxes("TextBox 1").Text ="abcdefg"
で可能です。
>Worksheets("Sheet1").TextBoxes("TextBox 1").Text.Font.Color = vbRed
> .Text.Font.Color テキストプロパティはありません。
このような書き方はしないと書いたつもりが、あらぬ方向にいってしまいました。
それについては謝罪します。
改めて、チェックし直しました。
フォームコントロールのTextBox のプロパティ
途中で欠けていたものを、書き出しました。
----------------------------
Addlndent, Application, AutoSize, Border, BottomRightCell, Caption, Creator, Enabled, Font, Formula, Height, Horizontal Alignment, Index, Interior, Left, Locked, LockedText, Name, On Action,
Orientation, Parent, Placement, PrintObject, RoundedCorners, Shadow, Text, TopLeftCell, VerticalAlignment, Visible, Width, ZOrder (全部使えるかは分かりません
)
----------------------------
#5で、私が書いた趣旨は、その対象のオブジェクトは、質問の際に指定しないと、答えられないということだったのが、話がうやむやになってしまいしまた。そして、テキストボックスには、概ね、二種類あるということでした。
ご質問は、文字の色を変えるですよね。文字そのものを変えるではありませんよね。
Worksheets("Sheet1").TextBoxes("TextBox 1").Font.Color = vbRed
もしくは、
Worksheets(1).TextBoxes(1).Font.Color = vbRed
(Sheets(1).TextBoxes(1).Font.ColorIndex = 3)
こちらが書いていないような書き加えなどせずに、プロパティはそのままで、もしエラーが発生するようでしたら、オフジェクトを必要とするエラーが出るなら、もう一度教えてください。
回答ありがとうございます。
ご提示いただきました Worksheets("Sheet1").TextBoxes("TextBox 1").Font.Color = vbRed は上手くいきました。
当然ながら、残りの2例もOKです。
ありがとうございました。
No.5
- 回答日時:
#3の回答者です。
>Worksheets("Sheet1").TextBoxes("TextBox 1").Text.Font.Color = vbRed
.Text.Font.Color テキストプロパティはありません。
>やっぱり、「実行時エラー '424':オブジェクトが必要です。」になります。
私は、そんなことは書いていないのですが。
ご質問者さんの場合は、TextBox オブジェクトには、Text プロパティがなどありません。ないプロパティ名をつけているのでは、エラーになるのは当然なのです。
Worksheets(1).TextBoxes(1).Font.Color = vbRed
()の中は、index つまり、オブジェクトの順番。オブジェクト名が正しく入れているのかどうかは、こちらでは分かりません。まして、フォームのTextBox そのものがあるのかさえ、こちらでは分かりません。(現行では、Win10の大幅のアップデートで、ActiveX の使用を不可にしていらい、フォームコントロールが主流になりつつあるけれども、本当に使えこなせる人は、前から使ってきた人以外は、教わらないと難しいです)
それから、TextBoxes というのは、フォームコントロール・オブジェクトのコレクション名。
TextBoxes の正しく名称が入るなら、それはそれで、構わないが、意外に失敗が多いのは、二重の名称があるせいだと思います。なお、Shapes というのは、これらと図形を含めたオブジェクトの総称名。
質問の元の文章の書き方は、フォームコントロールのものです。ActiveX コントロールの場合は、これはまったく違います。フォームコントロールは、挿入-図形から出します。開発側ではありません。開発側にあるのは、テキストフィールドと言います。
ご質問者さんが、貼り付けたものは、フォームかActiveX かとか、最初から、話をもう一度整理しなおしたほうがよいと思います。失礼ですが、このレベルで間違えるとなると、最初の質問のコードも正しいか、疑わしくなってしまいます。
ActiveX の場合は、デザインモード(開発タブ内)にしておいて、ダブルクリックすれば、そのシートのVBエディターに飛びますが、フォームは、飛ぶことはありません。右クリックして、マクロの登録をクリックしなければなりません。
添付画像は、TextBoxフォームの ヘルプの内容。現在はヘルプには存在しません。

お世話になっております。
試してみた、Sheets(1).TextBoxes(1).Text = "Hello World!" が、該テキストボックスへの書き込みができています。
また、ご指摘の「TextBox オブジェクトには、Text プロパティがなどありません。」は、当たってないのでは?
No.4
- 回答日時:
No.2の回答者です。
何故、ActiveSheetではなくWorksheets(1)にこだわるの?
No.3の回答者さんも書いていますが、Worksheets(1)は一番左端に
あるシートにあるものを処理するものです。
シート指定するならWorksheets("Sheet1")などにします。
お礼の実行時エラーは、一番左端のシートにテキストボックスなど
のShapesが何もないときのエラーだと思います。
開いているシート上にあるテキストボックスの文字を処理するなら
ActiveSheetが確実です。
紹介したURL先のマクロも、そのように書かれていますよね
Sub Shape内文字列の色変更_TextFrame2()
ActiveSheet.Shapes(1) _
.TextFrame2.TextRange.Font.Fill.ForeColor.RGB _
= RGB(255, 0, 0)
End Sub
上記をそのまま記載して実行。
これで問題がないのならば、特定シートを指定し直すようにすれば
済むことだと思いますよ。
https://excel-ubara.com/excelvba1/EXCELVBA337.html
Sub シート指定したShapeでの文字列の色変更_TextFrame2()
Workshets("シート名").Shapes(1) _
.TextFrame2.TextRange.Font.Fill.ForeColor.RGB _
= RGB(255, 0, 0)
End Sub
回答ありがとうございます。
Worksheet(1)、ActiveSheetについては、了解しました。
試してみた、Sheets(1).TextBoxes(1).Text = "Hello World!" が、該テキストボックスへの書き込みができていましたので、そのまま使っていました。
ActiveSheet.Shapes(1) _
.TextFrame2.TextRange.Font.Fill.ForeColor.RGB _
= RGB(255, 0, 0)
では、先のお礼に書きましたのと同じエラーになります。
No.3
- 回答日時:
こんにちは。
Worksheets(1).TextBoxes(1).Font.Color = vbRed
TextBoxes というのは、フォームコントロールの Ver.95 のオブジェクト名で、今は、ヘルプにも出てこないはずです。
「オブジェクトが必要です。」
というのは、Worksheet というオブジェクトは存在しないからです。
通常は、Worksheets("Sheet1") という名称にします。
Worksheets(1) というのは、少し意味か違います。左端にあるワークシートという意味です。
回答ありがとうございます。
Worksheets("Sheet1").TextBoxes("TextBox 1").Text.Font.Color = vbRed
としましたが、
やっぱり、「実行時エラー '424':オブジェクトが必要です。」になります。
No.2
- 回答日時:
ワークシートにある図形としてのテキストボックスならば、
Shapeを使ってTextFrame2オブジェクトで指定します。
https://www.relief.jp/docs/excel-vba-change-font …
早速の回答ありがとうございます。
Worksheets(1).Shapes(1) _
.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
としましたが、
「実行時エラー:'-2147024809(80070057)' 指定された値は境界を超えています。」となりました。
No.1
- 回答日時:
Worksheet(1).TextBoxes(1).Textbox.forecolor
じゃないかな?
https://msdn.microsoft.com/ja-jp/vba/access-vba/ …
早速回答頂きありがとうございます。
ご教示どおりに修正して実行しましたが、
「実行時エラー '438':オブジェクトは、このプロパティまたはメソッドをサポートしていません。」となりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Vba テキストボックスの文字列をボタンで入力するとテキストボックスの端の文字列が更新されない 2 2022/05/21 23:32
- Excel(エクセル) Excelのリストにある文字を含むセルを、複数の色で色付けしたいです 2 2022/08/11 17:39
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) Selenium Basicの件 5 2023/04/10 20:55
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Excel(エクセル) フォルダ内のファイル全てに対して、シート名・ファイル名を変更する方法(マクロ VBA) 2 2022/04/02 10:56
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- その他(ソフトウェア) LibleOffice Calc のテキストボックス 4 2023/08/16 09:37
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAにてUserFormのTextBoxにセルの値を色情報込みで反映させる方法があれば教えてください。
会計ソフト・業務用ソフト
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
5
Excel VBA で Richtextboxを使うことは出来ますか?
Visual Basic(VBA)
-
6
テキストボックスの背景をVBAで塗りつぶし無しにしたい
Access(アクセス)
-
7
Excelのテキストボックスでフォントの色を変える
Excel(エクセル)
-
8
VBAでテキストボックス内の編集をする方法
Visual Basic(VBA)
-
9
ExcelVBA EnableプロパティがFalseの時に文字の色を変えたくない
Visual Basic(VBA)
-
10
UserForm1.Showでエラーになります。
工学
-
11
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
12
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
13
【エクセル】複数のTextBoxに共通するChangeイベントを簡潔に書きたい
Excel(エクセル)
-
14
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
15
ACCESSでのテキストボックスの文字の一部の色づけ
その他(データベース)
-
16
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
17
エクセルVBAでマルチページの切り替え方法の件で
Excel(エクセル)
-
18
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
19
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
20
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
テキストボックス中の文字列の...
-
VBAで既に開いている別アプリケ...
-
オブジェクト変数の取得について
-
エクセルのVBAの標準モジュール...
-
上下の位置揃えについて
-
VBAで Set wb = Sheets(1).Cop...
-
横軸ラベルの追加に関するエラ...
-
実行時エラー 3265「要求された...
-
(初心者です)VBAについて。「実...
-
オブジェクトが見つかりません
-
「オブジェクト変数または With...
-
VBAからPDFファイルにパスワー...
-
Excelでフィルタをかけると警告...
-
エクセル エラー438
-
Shell.ApplicationのNameSpace...
-
ある文字列が全て数字であるか...
-
AccessVBAで「dim dbs as datab...
-
EXCEL VBA オートシェイプナン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
テキストボックス中の文字列の...
-
ExcelVBAでのNZ関数について
-
[VBA]CDOメッセージ送信エラー
-
EXCEL VBA オートシェイプナン...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルマクロエラー「'Cells'...
-
AccessVBAで「dim dbs as datab...
-
Excel VBAでWordの複数ファイル...
-
オブジェクトが見つかりません
-
CreateObjectとGetObjectの違い
-
エクセルVBAで配列内に空白デー...
-
オブジェクト変数またはWITHブ...
-
VBScriptからDLL参照設定したい
-
エクセルVBAでcode128のバー...
おすすめ情報