エクセルを利用した、VBAで困っています。
所定のsheetに埋め込まれたチェックボックスに対して、
別sheet内のセルの値を参照し、結果をオン、オフという
操作を行いたいのですが、チェックボックスに対するVBAでの指定方法
が分かりません。
イメージとしては
(1)Sheet1内にチェックボックスがある。
該当チェックボックスは7個のチェックボックスで構成されており
それぞれにchb1~chb7といったオブジェクト名がある。
(2)sheet2のA1セルに特定の値が入っていればチェックボックス(chb1)
がオン値がなければオフのまま
(3)sheet2のB1セルに特定の値が入っていればチェックボックス(chb2)
がオン値がなければオフのまま
という感じです。
先方より指定された様式なのでsheet1の内容や書式を変更することが出来ないので、なんとか埋め込まれたオブジェクトを操作したいのですが・・・
良い方法があれば教えてください。
No.3
- 回答日時:
こんにちは。
サンプルプログラムでは、
myKey = Array("特定値1", "特定値2", "特定値3", "特定値4", _
"特定値5", "特定値6", "特定値7")
で、それぞれの文字列で比較しています。
もし、特定値が数値であれば、
myKey = Array(1,2,3,4,5,6,7)
のように数値で指定してください。
また、特定値が複数の値であったり、ある範囲の値の場合は
改良が必要です。
No.2ベストアンサー
- 回答日時:
こんばんは。
一例です。
適当に応用してください。
Sub test1()
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim i As Integer
Dim myKey
myKey = Array("特定値1", "特定値2", "特定値3", "特定値4", _
"特定値5", "特定値6", "特定値7")
Set Ws1 = Worksheets("Sheet1")
Set Ws2 = Worksheets("Sheet2")
For i = 1 To 7
If Ws2.Cells(1, i).Value = myKey(i - 1) Then
Ws1.OLEObjects("chb" & i).Object.Value = True
Else
Ws1.OLEObjects("chb" & i).Object.Value = False
End If
Next i
Set Ws1 = Nothing
Set Ws2 = Nothing
End Sub
>ka_na_de様
ありがとうございます。
さっそく試してみたところ、正常にオブジェクトは選択されているような動作をしているのですが、チェックがオン状態になりません。
おそらくif文の条件指定と思いますので、いろいろと試行錯誤してみます。
No.1
- 回答日時:
まずは「マクロの記録」でチェックボックスをチェック状態にするコードを生成させる。
そのうえで、シート2!A1をIF文で判定して値を設定するコードを書く。
この回答への補足
>bin-chan様
何回か「マクロの記録」をやってみたのですが、まったく記録されずです。
質問記載が不十分だったかも知れませんが、チェックボックスはどうやらコントロールオブジェクトを使用されているようです。
>bin-chan様
間違えて質問捕捉に記載していました。
何回か「マクロの記録」をやってみたのですが、まったく記録されずです。
質問記載が不十分だったかも知れませんが、チェックボックスはどうやらコントロールオブジェクトを使用されているようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Excel(エクセル) たくさんあるフォームコントロールを効率よく確認するには 1 2022/12/24 12:27
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Gmail フィルター設定方法が分からん 1 2023/04/22 17:26
- その他(プログラミング・Web制作) python文字化けエラーが発生しているようです 3 2022/04/13 19:41
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
ラジオボタンの値の取得につい...
-
足して100になるような乱数のア...
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
C#で動的にコントロールを取得...
-
VBAで多項式近似曲線の計算
-
VB6.0-整数と余りを求める
-
数字の位ごとの値を表示するプ...
-
Nullってどういう意味ですか?
-
VBAのチェックボックス結果を集...
-
シグマのプログラムについて
-
UWSCのcallについて
-
C言語でCLAMP(a,b,c)
-
VBAでC列が入力済みならそのま...
-
railsのControllerでフォームの...
-
世界のナベアツ
-
DataGridView 複数行同時変更...
-
相関係数p値の出し方
-
VBAでダブルコーテーション入り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
足して100になるような乱数のア...
-
フリーランタイマーの時間差分...
-
DataGridView 複数行同時変更...
-
相関係数p値の出し方
-
世界のナベアツ
-
10進数をアスキーコードに変換
-
C#で動的にコントロールを取得...
-
ラジオボタンの値の取得につい...
-
DWORDって
-
バッチファイルで正規表現を使...
-
4択問題のプログラムでランダム...
-
1つ前の値を変数に保存する方法
-
VBAの定数の使い方で、計算値を...
-
コンボボックスの名前を変数に...
おすすめ情報