
エクセルで商品管理のシートを作成しています。
10店舗ほど支店があるので、取扱店舗をチェックボックスで
選択できるようにしていますが、全店取扱の商品がかなり有るので
一括で10個のチェックボックスにチェック出来る様にしたいのです。
最初はコマンドボタンのLINKEDCELLにチェックボックスで参照している
セルが連動するように数式を入れていたのですが、このやり方だと
ボタンを使わずにチェックボックスを使うと参照セルの数式が
「TRUE/FALSE」に上書きされてしまい、以後ボタンと連動しなくなってしまいます。
出来ればコマンドボタンのLINKEDCELLプロパティを複数セルに指定したいのですが、可能でしょうか?
※「A1:G1」等と設定してみたのですが、連動するのは「A1」のみでした…
VBAを使用すれば良いのでしょうが、まったく知識が無いので時間的に厳しい状況です。
どなたかお分かりの方がいらっしゃればご助言お願いいたします。
No.4ベストアンサー
- 回答日時:
こんにちは。
#2 です。二人が回答して、それぞれ別の教え方をしているようでは、混乱してしまいますが、私は、あくまでも CommnadButton(コマンドボタン)で書かせていただきます。
>どこの記述を変えれば狙ったチェックボックスのグループを
>反転できるのかが判らず八方塞です。
「一括で10個」 という意味が、任意のグループというのは、今、分かりました。
Array(2, 4, 5, 6, 7, 8) ←ここに、連動させる番号を「,(コンマ)」区切りで、入れてあげます。存在しない番号はいれないでくださいね。エラーになってしまいますから。
この中自体は、順番でなくてもよいです。なお、番号は、コントロールツールの青い三角のアイコンをオンにして、マウスを当てれば、チェックボックスの名称を変更していなければ、出てくるはずです。
'-------------------------------------------------------
Private Sub CommandButton1_Click()
Dim i As Variant
Dim bln As Boolean
Dim nums As Variant
nums = Array(2, 4, 5, 6, 7, 8) 'チェックボックスの番号を入れる
bln = Me.OLEObjects("CheckBox" & nums(0)).Object.Value '最初のチェックボックスにしたがって反転にさせます。True <-> False
For Each i In nums
Me.OLEObjects("CheckBox" & i).Object.Value = Not bln
Next i
End Sub
なお、今から、マクロを勉強しても、このレベルになるのは、半年先ぐらいになってしまいますから、もうお任せしたほうが早いと思います。(^^;
ありがとうございます!
無事出来ました!!!
ようやくチェックボックスを使い始めたばかりで
マクロは初めて触りました~
半年後にもう少し理解できるように勉強しようと思います。
ご助言ありがとうございました。
No.3
- 回答日時:
1、グループ別にトグルボタンを用意する。
2、または VBA で以下のようなコードを書く。
Option Explicit
Private Sub ComboBox1_Change()
Dim G As Integer
Dim obj As Object
Dim ObjName As String
G = Val(Me.ComboBox1.Value)
For Each obj In Me.OLEObjects
ObjName = obj.Name
If Left(ObjName, 8) = "CheckBox" Then
obj.Object.Value = CBool(Mid(ObjName, 9, 1) = G)
End If
Next obj
End Sub
Private Sub CommandButton1_Click()
Me.ComboBox1.AddItem "1:a"
Me.ComboBox1.AddItem "2:b"
Me.ComboBox1.AddItem "3:c"
End Sub
コマンドボタンでグループを選択します。
ComboBox1_Change() のコードは、対応するチェックボックスのみをONにするコードです。
コンボボックスの先頭の数字とチェックボックスの対応は次のようにしたらいいです。
CheckBox101
CheckBox102
CheckBox103
CheckBox201
CheckBox202
CheckBox203
これでグループ毎にオン、オフできます。
この回答への補足
ご回答ありがとうございます。
> ComboBox1_Change() のコードは、対応するチェックボックスのみを> ONにするコードです。
> コンボボックスの先頭の数字とチェックボックスの対応は次のように> したらいいです。
>
> CheckBox101
> CheckBox102
> CheckBox103
> CheckBox201
> CheckBox202
> CheckBox203
すみません。この部分がいまひとつ理解できないのですが、
どこの数字をどのように変えるのか具体的に教えていただけませんでしょうか?
何しろマクロはチンプンカンプンなので恐縮です・・・
マクロまで教えていただいてありがとうございます。
#2の方の方法を使わせていただきましたが、
同じ目的でもこんなに記述が違うなんて
マクロって奥深いですね~
本当にありがとうございました。
No.2
- 回答日時:
こんにちは。
結論から言うと、
「マクロを使わずに複数のチェックボックスに一括チェックするコマンドボタン」というのは、不可能ですね。
それで、マクロですが、コマンドボタンに取り付けてありますが、機能は、トグルになっています。LinkedCell は、すべて外してください。
Private Sub CommandButton1_Click()
Dim i As Integer
Dim bln As Boolean
bln = Me.CheckBox1.Value '一番目のチェックボックスにしたがって反転にさせます。
For i = 1 To 10
Me.OLEObjects("CheckBox" & i).Object.Value = Not bln
Next i
End Sub
この回答への補足
ご回答ありがとうございます。
判らないながらも記述していただいたマクロを入れてみました。
確かにチェックはされるのですが、今度はチェックしたくない取扱店舗以外のチェックボックスも全て連動してしまいます…
どこの記述を変えれば狙ったチェックボックスのグループを
反転できるのかが判らず八方塞です。
やはりマクロを勉強しなくてはならないのでしょうか…
No.1
- 回答日時:
一度も Excel は操作したことがない門外漢ですが・・・。
ToggleButton1.LinkedCell=A1
CheckBox1.LinkedCell=A1
CheckBox2.LinkedCell=A1
CheckBox3.LinkedCell=A1
という仕掛けであれば、トグルボタンのオン、オフで複数のチェックボックスの値の操作が可。
コマンドボタンでは難しいのでは・・・。
この回答への補足
すみませんコマンドボタン→トグルボタンの間違いでした…
ご回答いただいた方法だと全てのチェックボックスが連動してしまうため全店取扱の場合は問題ないのですが、個別にチェックを入れても全て連動してしまいます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル バーコード作成で他のシートを参照するには? 2 2023/05/03 16:57
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Excel(エクセル) たくさんあるフォームコントロールを効率よく確認するには 1 2022/12/24 12:27
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルでチェックボックスを一列にたくさんつくり、各行にリンク先のセルを設定する場合、どのようにした
Excel(エクセル)
-
選択したセル範囲に入っているチェックボックスを全てOFFにしたい
Excel(エクセル)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
5
エクセルのチェックボックスで3つあるうち1つチェック入れたら自動的に残りにチェック出来ないようにするには
Excel(エクセル)
-
6
【VBA】シート上の複数のチェックボックスのうちどれか一つでも変更した場合のイベント
Visual Basic(VBA)
-
7
エクセルのチェックボックスを保護対象から外すには
Windows Vista・XP
-
8
A4サイズのPDFデータを2枚合わせてA3サイズ1枚のPDFデータにしたい
その他(ソフトウェア)
-
9
Excel チェックボックスにチェックが付いた複数のセルを別のシートにコピー・貼り付けするマクロを教
Visual Basic(VBA)
-
10
エクセルVBAでチェックボックスにチェックを入れる
Excel(エクセル)
-
11
エクセル セルに文字を入力したら別のセルに入力した時間が表示されるようにしたい
Excel(エクセル)
-
12
2つのマクロでチェックボックスが連動しません
Visual Basic(VBA)
-
13
VBA 空白セルを削除ではない方法で詰めるやり方
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
押したボタンの位置取得(共通の...
-
コマンドボタンがあるかどうか...
-
コマンドボタンを押すたびに大...
-
Accessのコマンドボタンの立体...
-
Excel:コマンドボタンの移動
-
PPTのコマンドボタンがクリック...
-
スクロールしてもボタンを常に...
-
ワードにタイマーを設定したい
-
Accessユーザーフォームでコマ...
-
EXCELでNo.を変えて印刷したい
-
エクセルでマクロを使わずに複...
-
VBAの印刷について教えてください
-
[ExcelVBA] コマンドボタンを押...
-
CyberLinkPowerDirectorでDVD作...
-
Wordでドラッグした文字列を括...
-
エクセル:マクロのコマンドボ...
-
エクセルVBAでOptionButtonのオ...
-
エクセルVBA
-
アクセス2000:アクセスからワ...
-
EXCELのシート上に埋め込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドボタンを押すたびに大...
-
Excel:コマンドボタンの移動
-
スクロールしてもボタンを常に...
-
Excel VBA --- コマンドボタ...
-
PPTのコマンドボタンがクリック...
-
押したボタンの位置取得(共通の...
-
Accessのコマンドボタンの立体...
-
コマンドボタンがあるかどうか...
-
エクセルVBAでOptionButtonのオ...
-
コマンドボタンで「終了ボタン...
-
エクセルVBA
-
ShowAllDataのエラーを回避したい
-
EXCELでNo.を変えて印刷したい
-
エクセルのコマンドボタンの位...
-
Wordでドラッグした文字列を括...
-
エクセルでマクロボタンを動か...
-
チェックボックスで「いずれか1...
-
エクセルVBA シート上にあるコ...
-
Excel VBA 複数のコマンドボ...
-
InDesignには「1段階戻る」の...
おすすめ情報