
エクセルを利用した、VBAで困っています。
所定のsheetに埋め込まれたチェックボックスに対して、
別sheet内のセルの値を参照し、結果をオン、オフという
操作を行いたいのですが、チェックボックスに対するVBAでの指定方法
が分かりません。
イメージとしては
(1)Sheet1内にチェックボックスがある。
該当チェックボックスは7個のチェックボックスで構成されており
それぞれにchb1~chb7といったオブジェクト名がある。
(2)sheet2のA1セルに特定の値が入っていればチェックボックス(chb1)
がオン値がなければオフのまま
(3)sheet2のB1セルに特定の値が入っていればチェックボックス(chb2)
がオン値がなければオフのまま
という感じです。
先方より指定された様式なのでsheet1の内容や書式を変更することが出来ないので、なんとか埋め込まれたオブジェクトを操作したいのですが・・・
良い方法があれば教えてください。
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.3
- 回答日時:
こんにちは。
サンプルプログラムでは、
myKey = Array("特定値1", "特定値2", "特定値3", "特定値4", _
"特定値5", "特定値6", "特定値7")
で、それぞれの文字列で比較しています。
もし、特定値が数値であれば、
myKey = Array(1,2,3,4,5,6,7)
のように数値で指定してください。
また、特定値が複数の値であったり、ある範囲の値の場合は
改良が必要です。
No.1
- 回答日時:
まずは「マクロの記録」でチェックボックスをチェック状態にするコードを生成させる。
そのうえで、シート2!A1をIF文で判定して値を設定するコードを書く。
この回答への補足
>bin-chan様
何回か「マクロの記録」をやってみたのですが、まったく記録されずです。
質問記載が不十分だったかも知れませんが、チェックボックスはどうやらコントロールオブジェクトを使用されているようです。
>bin-chan様
間違えて質問捕捉に記載していました。
何回か「マクロの記録」をやってみたのですが、まったく記録されずです。
質問記載が不十分だったかも知れませんが、チェックボックスはどうやらコントロールオブジェクトを使用されているようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA セルの値がおかしいです
-
VBA セル間のリンク修正につい...
-
【マクロ】並び替えの範囲が、...
-
vba textboxへの入力について教...
-
ワードの図形にマクロを登録で...
-
エクエルのVBAコードについて教...
-
複数のExcelファイルをマージす...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
Excel VBA 選択範囲の罫線色の...
-
VBAでCOPYを繰り返すと、処理が...
-
【マクロ】開いているブックの...
-
えくせるのVBAコードについて教...
-
VBAの「To」という語句について
-
VB.net 文字列から日付型へ変更...
-
【ExcelVBA】5万行以上のデー...
-
VBA ユーザーフォーム ボタンク...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
VB6.0-整数と余りを求める
-
ラジオボタンの値の取得につい...
-
足して100になるような乱数のア...
-
VBAで配列のNULL判定
-
VBA コンボボックスの値をスピ...
-
データ構造のmapとは?
-
VBAの定数の使い方で、計算値を...
-
フリーランタイマーの時間差分...
-
1つ前の値を変数に保存する方法
-
C#で動的にコントロールを取得...
-
コンボボックスの名前を変数に...
-
UWSCのcallについて
-
Nullってどういう意味ですか?
-
DWORDって
-
[シェルスクリプト] 空文字の判...
-
Access2003 オートナンバーの現...
-
2つの列で重複するキーの数と...
おすすめ情報