![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
VBAを始めたばかりの初心者です。
sheet1にコントロール(CommandButton)を10個ほど配置しました。各CommandButtonのCaptionにsheet2~11のセルA1の値を表示させたいと思っています(このA1の値は変化します)。
Private Sub Workbook_Open()
Dim Mrang1 As String
Mrang1 = Worksheet(2).Range("a1").Value
CommandBottan1.Caption = Mrang
End Sub
上記のようなものを考えてみましたが、ダメでした。
根本的に何か間違っているのでしょうか。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
質問の真意というか、困っている状況が良く伝わりませんが推定して
私も試行してみました。上手く行かない原因は「イベント」の捕らえ方
選び方にあると思います。イベントとは「クリックしたら」とか「ワークブックを開いたら」とか言うプログラムが実行される「きっかけ」のことですよね。
以下回答を済ませてから良く見ると質問はコマンドボタン
を貼りつけるものでした。済みません置き換えてください。変わりはないと思います。
新規WorkbookのSheet1を開き、メニューバーの右余白部分で
右クリック-コントロールツールボックス-ラベル(Aの表示のあるもの)とクリックし、ラベルをSheet1上にドラッグして貼りつけました。
それを3回繰り返し3つラベルを貼りつけました。その後
ツール-マクロ-VisualBasicEditor-コードをクリックします。
イベントとしてWorksheetのActivateを選びました。
コーディングの本体は貴殿と同じです。
Private Sub Worksheet_Activate()
Label1.Caption = Worksheets("sheet1").Range("a1")
Label2.Caption = Worksheets("sheet2").Range("a1")
Label3.Caption = Worksheets("sheet3").Range("a1")
End Sub
そしてメニューの「実行」をクリックします。その後Worksheetに切り替えてSheet2のA1に文字列値(ロとする)を入れ、Sheet3のA1に文字列値(ハとする)を入れSheet1に戻ります。最後にSheet1のA1に文字列(イ)値を入れると、Sheet1の3つのラベルの文字がそれぞれイ、ロ、ハになります。
Sheet2を開いてA1の値を変えたり、Sheet3を開いてA1の値を変えたりして、Sheet1に戻るとSheet1の3つラベルは変えたように変わります。
ただこのWorksheetはSheet1を指すようで、Sheet2のA1に「ロ」を
入れた時やSheet3のA1に「ハ」を入れた時に、Sheet1のラベル
が変わるのではないようです。
しかし貴殿の意図のケースではSheet1にもどった時に変わっていれ
ば差し支えないのではないでしょうか。
丁寧な回答で、もやもやとしていたイベントの概念もよーくわかりました。
大きなヒントになったのは、Worksheets("sheet1")の"sheet1"の部分でした。
はずかしながら、Worksheets(1)とWorkshhts("sheet1")は全く同じであると思っておりまして、「ボタン」を配置したシートの指定がまちがっていたようです。
あとは回答いただいた通り作成してみたところ、うまくいきました。本当に有り難うございました。
No.3
- 回答日時:
こんな感じはどうでしょう。
コントロールは配列で配置して、
Dim Mrang(10) as string
Dim i as integer
FOR i=0 to 10
Mrang(i)=Worksheets(i+2).Cells(1,1)
WorkSheets(1).CommandButton(i).Caption=Mrang(i)
NEXT i
~まず配列Mrang()にそれぞれの文字列を代入して、コマンドボタンのキャプションに表示させます。
そんな感じでとてもいいです。
10個のコマンドボタンを配置して…と質問に書いた後40個に増えました。なので、この配列の回答はぜひ使わせていただきたいと思います。有り難うございました。
No.1
- 回答日時:
シート1に作ったボタンというのは「フォーム」ツールバーの「ボタン」でしょうか。
もしそうならば、それはCommandButtonとは呼ばないようです。マクロの記録では Shapes("Button 1")となっていました。
そこで、普通に「フォーム」ツールバーの「ボタン」のテキストを表示変更するマクロを作ってみました。
Sub Auto_Open()
For a = 1 To 10
Worksheets(1).Shapes("Button " & a).Select
Selection.Characters.Text = Worksheets(a + 1).Range("A1")
Next
End Sub
ただ、ksjqaさんはWorkbook_OpenというイベントマクロやPrivate Sub~もご存知の方なので「フォーム」ツールバーの「ボタン」のことではないのかもしれませんが。
もし質問の意味が違ったのでしたら、また補足して下さい。
わかりやすい回答をありがとうございました。
「フォーム」ツールバーではなく、「コントロール」ツールバーのボタンのことだったのですが、tamagawa49さんの説明で、「フォーム」ツールバーの「ボタン」の扱いが理解できました。
皆さんの回答を試していてお礼が遅れた事をお詫びします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
昔のあなたへのアドバイス
過去のあなたへ一度だけアドバイスを送れる電話があったとします。 もしあなたがその電話を手にしたら、いつの自分にどのようなアドバイスを送りますか?
-
Excel VBA ワークシートに貼られたボタン名(Caption)をセルの値から取得するには
その他(プログラミング・Web制作)
-
Excel VBAで、実行時にsheet上のコマンドボタンのCaptionを変更する。
Excel(エクセル)
-
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
-
4
エクセルVBAで、ボタンの文字を変えたい
Excel(エクセル)
-
5
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
UserForm1.Showでエラーになります。
工学
-
9
Excelマクロでオプションボタンの名前の変更をしたい
Excel(エクセル)
-
10
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
11
Excelコマンドボタン名を変数にして背景色を変更
サーバー
-
12
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
13
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
14
ExcelVBAで質問です。Workbook_openイベントが発生し
その他(Microsoft Office)
-
15
CommandButtonのCaption(複数行にわたるタイトル)
Excel(エクセル)
-
16
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
17
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
18
EXCEL VBAのユーザーフォームに引数を渡す方法について
Excel(エクセル)
-
19
エクセルのコマンドボタンの位置をVBAで指定できませんか?
Excel(エクセル)
-
20
フォームコントロールから作ったボタンのデザイン
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA(エクセル)で自動的にボタン...
-
VBA シートのボタン名を変更し...
-
VBA CommandButtonの文字ずれ
-
ユーザーフォームに別シートか...
-
VBAのボタンの位置が変わって困...
-
Excel VBA Application.caller...
-
VBA IE ダウンロード ダイアロ...
-
アイコンとボタンの違い
-
フォームの再読み込み
-
Access VBA でデータペーストを...
-
VBAで多数のプログラムを一つの...
-
最小化のボタンだけ表示したい...
-
ASP.NETのWebフォーム内で複数...
-
閉じると「+」になり開くと「-...
-
VB6でマルチスレッド?
-
C#で動的に作ったtextboxを消す。
-
VBAでオプションボタンによって...
-
ダウンロードダイアログをVB...
-
+ボタンの名称は?
-
BorlandC++Builderでのタイマー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA シートのボタン名を変更し...
-
VBA(エクセル)で自動的にボタン...
-
ユーザーフォームに別シートか...
-
フォームの再読み込み
-
VBA CommandButtonの文字ずれ
-
セルをマクロのボタンにしたい。
-
VBAのボタンの位置が変わって困...
-
[VB.net] ボタン(Flat)のEnable...
-
Excel VBA Application.caller...
-
コマンドボタンやイメージにマ...
-
ボタンをマウスで押し続けたと...
-
閉じると「+」になり開くと「-...
-
アイコンとボタンの違い
-
他のアプリケーションとの連携
-
ボタン
-
プロシージャからイベントをコ...
-
Access VBA でデータペーストを...
-
ボタンの枠線の様なものを消したい
-
VBAで多数のプログラムを一つの...
-
TextBoxでEnterキーを押すと、...
おすすめ情報