🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

594閲覧

セル名を変数とすることで,一気に編集を行えるようにしたい.

Ryuhe

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2021/03/16 02:15

VBAについて質問です.
AI3を使用する箇所が,二か所あるため一気に編集が出来ればなと考えております.
上でAI3→AI2に変更したら二か所とも変わるようなプログラムにしたいです.

この場合以下のようなコードでいけるかと思ったのですが,動作してくれません.
間違っている箇所についてご指摘お願いします.
VBA初心者です.

Sub 建築用途チェック1_Click()
Dim R As Range      
Set R = Range("AI3") !ここでセル名を変更すると下の二つに反映されるようにしたい.

If ActiveSheet.CheckBoxes("Check Box 1").Value = xlOn Then ActiveSheet.CheckBoxes("Check Box 2").Value = xlOff ActiveSheet.CheckBoxes("Check Box 3").Value = xlOff ActiveSheet.CheckBoxes("Check Box 4").Value = xlOff ActiveSheet.CheckBoxes("Check Box 5").Value = xlOff ActiveSheet.CheckBoxes("Check Box 6").Value = xlOff ActiveSheet.R.Value = Range("D3").Value End If If ActiveSheet.CheckBoxes("Check Box 1").Value = xlOff Then ActiveSheet.R.Value = "" End If

End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

質問に含まれていない部分ですが、AI3→AI2に変わった場合

Range("D3").Value

はそのままで問題ないですか?

Dim row As Integer row = 2 Range("D" & row).Value

とか

'Cells(rowIndex, columnIndex).Value Cells(2, 4).Value 'D列は4

とかいう書き方もできます。

カラム番号を確認したい場合は
オプション > 数式 > R1C1参照形式を使用する(R)
を設定してあげると、列番号のAが1に表記が変わります。

投稿2021/03/16 03:03

sinya0320

総合スコア211

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

Rはレンジオブジェクトですので、ActiveSheet. を付けてはいけません。

vba

1Sub 建築用途チェック1_Click() 2 Dim R As Range 3 Set R = ActiveSheet.Range("AI3") 4 5 If ActiveSheet.CheckBoxes("Check Box 1").Value = xlOn Then 6 ActiveSheet.CheckBoxes("Check Box 2").Value = xlOff 7 ActiveSheet.CheckBoxes("Check Box 3").Value = xlOff 8 ActiveSheet.CheckBoxes("Check Box 4").Value = xlOff 9 ActiveSheet.CheckBoxes("Check Box 5").Value = xlOff 10 ActiveSheet.CheckBoxes("Check Box 6").Value = xlOff 11 R.Value = Range("D3").Value 12 End If 13 14 If ActiveSheet.CheckBoxes("Check Box 1").Value = xlOff Then 15 R.Value = "" 16 End If 17End Sub

お願い
コードはマークダウン書式のコードブロックに入れてください。
そうすると上のコードのように読みやすく表示されます。
回答は編集できますので修正しておいてください。
コードブロックにする方法は下記をご参考に。
ソースコードを書きましょう

投稿2021/03/16 02:43

編集2021/03/16 03:14
hatena19

総合スコア34073

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryuhe

2021/03/16 04:47

ありがとうございます. 前につけてはいけないとのこと勉強になりました. また,マークダウン書式のコードブロックの件ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問