アンケート用紙をExcelで作成し、チェック欄にツールボックスの「チェックボックス」を使っています。
そのファイルを立ち上げると、必ず「・・・マクロを含んでいます。 マクロを無効にする、マクロを有効にする、詳細 」のメッセージが表示され、いずれかを選択するとExcelを立ち上がります。
しかし、アンケート用紙のように簡単なチェック欄に使うので、マクロを使うつもりはなく、起動の度に上記のメッセージが煩わしいので、表示させなくするにはどうしたらいいのでしょうか。

セキュリティレベルは「中」に設定されており、これを低くしたくはなりません。
また、同じよう表示でフォームの「チェックボックス」は見た目がイマイチなので、できれば使いたくありません。

設定を変えて、 メッセージを表示させなくする方法がありましたら、ご教示をお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ん~と思ったのですが、マクロを記述していなければメッセージは出なかったと思います。


試してみましたが大丈夫でした。
ツールボックスのチェックボックスですので、シート名のタブを右クリック
コードの表示をクリックしてみて、何らかのマクロが記述されていないか確認してください。
コードがあれば削除すれば大丈夫かと思います。
    • good
    • 0
この回答へのお礼

コード表示で確認しましたら、コードが書かれていました。
「Check Box」を作成する過程で、コード表示の画面で無意識に何らかのクリックを行なっていたと思います。
Check Box自体の横に表示される「caption」テキスト?を削除した際にコードが書かれたものと思います。

それらのコードを削除し、上書き保存しました後、再度起動してもメッセージは表れなくなりました。
ありがとうございました。

お礼日時:2009/05/28 01:25

「Check Box」を作成するだけではマクロの有効/無効のメッセージは表示されません。



[Alt]+[F11]でコードがないか?

シート見出し右クリック コードの表示で書かれていないか?

外部のマクロを登録したとか?
    • good
    • 0
この回答へのお礼

コード表示で確認しましたら、コードが書かれていました。
「Check Box」を作成する過程で、コード表示の画面で無意識に何らかのクリックを行なっていたと思います。
それらのコードを削除し、上書き保存しました後、再度起動してもメッセージは表れなくなりました。
ありがとうございました。

お礼日時:2009/05/28 01:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVC++ MFCチェックボックスの色の変更について

チェックボックスに付くテキストの色や背景の色を変える事は調べていく中で可能だということが
分かったのですが、
チェックやチェックの四角形内部の色を変える事は可能でしょうか?

Aベストアンサー

CButtonの派生クラスをつくり、CButton::DrawItemをオーバーライドしてオーナー描画すれば可能かと思います。

Qエクセルのマクロを用いてチェックボックスをまとめてチェックする方法

エクセルを用いてチェックボックスが縦に並んだ書類を作っているのですが、チェックする項目のパターンが決まっているので毎回同じところにチェックするのが面倒です。
ワンクリックで複数のチェックがかけられるようにしたいのですが、
ツール→マクロ→新しいマクロの記録 で複数のチェック「レ」ができるようにマクロのを登録してみたのですがチェックがかかりません。
何かよい方法は無いでしょうか?

Aベストアンサー

こんばんは。

全部チェック

Sub Test1()
'フォームツール
 ActiveSheet.CheckBoxes.Value = True
End Sub

Sub Test2()
'コントロールツール
  Dim ctrl As Object
  For Each ctrl In ActiveSheet.OLEObjects
    If TypeOf ctrl.Object Is MSForms.CheckBox Then
      ctrl.Object.Value = True
    End If
  Next ctrl
End Su

個別にチェック

Sub Test1a()
'フォームツール
 ActiveSheet.CheckBoxes(Array(1, 3, 5)).Value = True
End Sub

Sub Test2a()
'コントロールツール
  Dim i As Variant
  For Each i In Array(1, 3, 5)
    ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = True
  Next i
End Sub

なお、シートモジュールの場合は、ActiveSheet. は不要です。

こんばんは。

全部チェック

Sub Test1()
'フォームツール
 ActiveSheet.CheckBoxes.Value = True
End Sub

Sub Test2()
'コントロールツール
  Dim ctrl As Object
  For Each ctrl In ActiveSheet.OLEObjects
    If TypeOf ctrl.Object Is MSForms.CheckBox Then
      ctrl.Object.Value = True
    End If
  Next ctrl
End Su

個別にチェック

Sub Test1a()
'フォームツール
 ActiveSheet.CheckBoxes(Array(1, 3, 5)).Value = True
End Sub

Sub Test2a()...続きを読む

Qエクセル チェックボックスの初期値を条件により変更したい。

エクセル チェックボックスの初期値を条件により変更したい。

表題の質問をさせていただきます。

チェックボックスを20個あらかじめ配した以下のような表があります。

A列:社員ID (随時入力)
B列:社員名 (VLOOKUPで表示)
C列:チェックボックスを配置
D列:チェックボックスのリンクするセルに設定

チェックボックスの初期値は空欄(FALSE)にしています。

社員IDを入力した時に、連動してチェックボックスの値を「TRUE」にしてチェックを入れたいのです。
現在は社員ID入力後にチェックボックスをクリックしています。

よろしくお願いいたします。

Aベストアンサー

フォームコントロールのチェックボックスですか?

>社員IDを入力した時に、連動してチェックボックスの値を「TRUE」にしてチェックを入れたいのです。
チェックボックスを使う意味が無くなるように思いますがどうでしょうか。

回答としては、A列セルをリンクするセルに設定してはいけないでしょうか。

Qエクセルのマクロを用いてチェックボックスをまとめてチェックする方法(その2)

「エクセルを用いてチェックボックスが並んだ書類があります。チェックする
 項目のパターンが決まっているので、毎回マウスを移動してチェックするの
 が面倒です。ワンクリックで複数のチェックがかけられるようにしたい
 のですが、よい方法は無いでしょうか?」

ほぼ類似の質問で、以前、別の人の質問

https://oshiete.goo.ne.jp/qa/3676289.html

に対してベストアンサーで示されていますが、これは、同一ブックの同一シートなどから
は対応できます。しかし、今回は会社の既存の帳票にマクロ(VBA)を埋め込まずに処理
したいので、別のブックにマクロ(VBA)を作成して処理したいと考えています。当該
コードを下記のようにアレンジしてみましたが、うまくいきません。


(例)
話の簡単のために、まずはチェックボックスのチェックを一括で外すことを試みます。

【帳票.xlsx】
 例えば、ワークシートにチェックボックス(開発のデザインタブから貼り付けたもの)
 が5個並んでいます。このうち、数個に既にチェックがついています。
 
【マクロ埋め込み.xlsm】
 Sub Check_Off_All()

Dim wsKitReq As Worksheet
Set wsKitReq = Workbooks("帳票.xlsx").Worksheets("sheet1")

'コントロールツール
Dim ctrl As Object
For Each ctrl In wsKitReq.OLEObjects
If TypeOf ctrl.Object Is MSForms.CheckBox Then
ctrl.Object.Value = False
End If
Next ctrl

End Sub


上のようにすると、実行後に「ユーザー定義型は定義されていません。」が出てしまいます。

(*1) For Nextの行を外すと処理できますが、ワークシート内に他のオブジェクト(例えば、
テキストボックスがあると、[False]のように表示されてしまうのでチェックボックスだけ
を抽出して処理することは必須になります。

(*2) ちなみに全く同様のコードを【帳票.xlsx】のsheet1にワークシートマクロとして埋め
込むと全く問題なく動きますので、コーディングが根本的に誤っているとは考えにくい
ところです。

「エクセルを用いてチェックボックスが並んだ書類があります。チェックする
 項目のパターンが決まっているので、毎回マウスを移動してチェックするの
 が面倒です。ワンクリックで複数のチェックがかけられるようにしたい
 のですが、よい方法は無いでしょうか?」

ほぼ類似の質問で、以前、別の人の質問

https://oshiete.goo.ne.jp/qa/3676289.html

に対してベストアンサーで示されていますが、これは、同一ブックの同一シートなどから
は対応できます。しかし、今回は会社の既存の帳票にマクロ...続きを読む

Aベストアンサー

こんにちは。

直してみました。
原因は、TypeOf は、そのオブジェクトの上位のクラスを読むものですが、他ブックからですと、共有していませんから、そのクラスを見つけることができないからだと思います。間違った考えかもしれませんが、例えでいうなら、親が誰かわかっているところで、その子供の親を識別できるけれども、子供だけだと、誰の親か分からない、という所ではないでしょうか。

'//
Sub Check_Off_All()
'No. 9059904
 Dim ctrl As Object
 Dim wsKitReq As Worksheet
 Set wsKitReq = Workbooks("帳票.xlsx").Worksheets("sheet1")
 'コントロールツール(OleObjects)
 For Each ctrl In wsKitReq.OLEObjects
 If TypeName(ctrl.Object) = "CheckBox" Then
  ctrl.Object.Value = False
 End If
 Next ctrl
End Sub

'決まった所にチェックを入れる

Sub Test2b()
 ''No. 9059904-2
  Dim i As Variant
  Dim wsKitReq As Worksheet
  Set wsKitReq = Workbooks("帳票.xlsx").Worksheets("sheet1")
  For Each i In Array(1, 3)
    wsKitReq.OLEObjects("CheckBox" & i).Object.Value = True
  Next i
 End Sub
'///

参考:
https://msdn.microsoft.com/en-us/library/s4zz68xc.aspx

こんにちは。

直してみました。
原因は、TypeOf は、そのオブジェクトの上位のクラスを読むものですが、他ブックからですと、共有していませんから、そのクラスを見つけることができないからだと思います。間違った考えかもしれませんが、例えでいうなら、親が誰かわかっているところで、その子供の親を識別できるけれども、子供だけだと、誰の親か分からない、という所ではないでしょうか。

'//
Sub Check_Off_All()
'No. 9059904
 Dim ctrl As Object
 Dim wsKitReq As Worksheet
 Set wsKitReq = Workbook...続きを読む

Qエクセル 複数のチェックボックスをリンクさせる

こんにちは、エクセル2010を使っています。

チェックボックスについて、解らない事が出てきましたので、教えて頂けませんでしょうか。

book1とbook2にチェックボックスがあります。

本来利用するのは、Book1のチェックボックスなのですが、Book2に作ったチェックボックスにチェックを入れると、Book1のチェックボックスにもチェックが入るようにしたいのです。

詳しい方、教えて頂けませんでしょうか。

よろしくお願い致します。

Aベストアンサー

以下のような手順で、2つのチェックボックスのリンクするセルを同一のセルにします。

ご使用のチェックボックスがフォームのチェックボックスなら、Book1のチェックボックスをで右クリックして「コントロールの書式設定」で「リンクするセル」を指定します。
Book2のチェックボックスで右クリックしてチェックボックスを選択し、数式バーに「=」と入力し、Book1のリンクするセルを選択します(これで「=[Book1]Sheet3!$A$3」のような他ブックを参照する数式になります)。

Qエクセルでマクロを使わずに複数のチェックボックスに一括チェックするコマンドボタンを作れますか?

エクセルで商品管理のシートを作成しています。

10店舗ほど支店があるので、取扱店舗をチェックボックスで
選択できるようにしていますが、全店取扱の商品がかなり有るので
一括で10個のチェックボックスにチェック出来る様にしたいのです。

最初はコマンドボタンのLINKEDCELLにチェックボックスで参照している
セルが連動するように数式を入れていたのですが、このやり方だと
ボタンを使わずにチェックボックスを使うと参照セルの数式が
「TRUE/FALSE」に上書きされてしまい、以後ボタンと連動しなくなってしまいます。

出来ればコマンドボタンのLINKEDCELLプロパティを複数セルに指定したいのですが、可能でしょうか?
※「A1:G1」等と設定してみたのですが、連動するのは「A1」のみでした…

VBAを使用すれば良いのでしょうが、まったく知識が無いので時間的に厳しい状況です。

どなたかお分かりの方がいらっしゃればご助言お願いいたします。

Aベストアンサー

こんにちは。
#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

なお、今から、マクロを勉強しても、このレベルになるのは、半年先ぐらいになってしまいますから、もうお任せしたほうが早いと思います。(^^;

こんにちは。
#2 です。二人が回答して、それぞれ別の教え方をしているようでは、混乱してしまいますが、私は、あくまでも CommnadButton(コマンドボタン)で書かせていただきます。

>どこの記述を変えれば狙ったチェックボックスのグループを
>反転できるのかが判らず八方塞です。

「一括で10個」 という意味が、任意のグループというのは、今、分かりました。

Array(2, 4, 5, 6, 7, 8) ←ここに、連動させる番号を「,(コンマ)」区切りで、入れてあげます。存在しない番号はいれないでくださいね。...続きを読む

Qエクセルのチェックボックスについて教えて下さい

「OK」と言うチェックボックスを「10」作成します。

すべてOKの場合、OKを10回クリックしてOKの欄を
埋めるのではなく、どこか一つのチェックボックスをクリック
すると全てのチェックボックスにレ点が挿入できるようにしたい
です。

チェックボックスを作成するまでは出来ます。
解決方法を教えて下さい。

Aベストアンサー

10個のうちのどれかで、全てを・・・というのは、皆さんが指摘されて
いるように、矛盾しており、個別指定もできません。
そこで、11個目のチェックボックスで、全選択・全解除をするのサンプルを紹介します。
1)1~10のチェックボックスのリンク先セルをB1~10に設定しておきます。
2)11個目のチェックボックスのリンク先セルをC1に設定します。
3)11個目のチェックボックスを選択し、右クリックし、「マクロの登録」
「新規作成」を選択します。
4)以下のマクロを Sub チェックxx_Click()の次の行に追加します。

Range("B1").Value = Range("C1").Value
Range("B2").Value = Range("C1").Value
Range("B3").Value = Range("C1").Value
Range("B4").Value = Range("C1").Value
Range("B5").Value = Range("C1").Value
Range("B6").Value = Range("C1").Value
Range("B7").Value = Range("C1").Value
Range("B8").Value = Range("C1").Value
Range("B9").Value = Range("C1").Value
Range("B10").Value = Range("C1").Value

10個のうちのどれかで、全てを・・・というのは、皆さんが指摘されて
いるように、矛盾しており、個別指定もできません。
そこで、11個目のチェックボックスで、全選択・全解除をするのサンプルを紹介します。
1)1~10のチェックボックスのリンク先セルをB1~10に設定しておきます。
2)11個目のチェックボックスのリンク先セルをC1に設定します。
3)11個目のチェックボックスを選択し、右クリックし、「マクロの登録」
「新規作成」を選択します。
4)以下のマクロを Sub チェックxx_Clic...続きを読む

QEXCEL VBA コンボボックス、テキストボックスが未入力のときメッセージを表示する方法

ユーザーフォームにコンボボックス2個textboxが2個あります
コンボは選択のみです。
コンボとtextbox1は入力必須にして、空欄でコマンドボタンが押された時はメッセージを表示したいです
OKwebを参考に作ったのですが、コンボ1が空欄でもMsgが出ません
願いします

Private Sub CommandButton1_Click()
Dim ctrl As Control, tst1 As String, txt2 As String
Dim ws As Worksheet

Set ws = Sheets("sheet1")
For Each ctrl In Me.Controls
Select Case ctrl.Name
Case "ComboBox1", "ComboBox2", "TextBox1"
If Me.Controls(ctrl.Name).Value = "" Then
txt1 = txt1 & ctrl.Name & vbLf
Else
txt2 = txt2 & Me.Controls(ctrl.Name).Value & vbLf
End If
End Select
Next
If Len(txt1) > 0 Then
MsgBox "以下の値を入力してください" & vbLf & txt1, vbExclamation
Exit Sub
Else
ret = MsgBox("以下の値を入力します" & vbLf & txt2, vbOKCancel)
If ret <> vbOK Then Exit Sub

ユーザーフォームにコンボボックス2個textboxが2個あります
コンボは選択のみです。
コンボとtextbox1は入力必須にして、空欄でコマンドボタンが押された時はメッセージを表示したいです
OKwebを参考に作ったのですが、コンボ1が空欄でもMsgが出ません
願いします

Private Sub CommandButton1_Click()
Dim ctrl As Control, tst1 As String, txt2 As String
Dim ws As Worksheet

Set ws = Sheets("sheet1")
For Each ctrl In Me.Controls
Select Case ctrl.Name
Case "ComboBox1", "ComboBox2", "...続きを読む

Aベストアンサー

こんにちは。

バグらしいバグは掲載されたソースからは読み取れません。ComboBox に
どのようにデータを追加しているのか、どのようなデータなのかあたり
からも検証しないと。

また、ソースが途中で途切れてますよ。ちゃんと End Sub まで、掲載して
下さい。

とりあえず、新規ブックで Userform を挿入し、

 ・Textbox1
 ・ComboBox1
 ・ComboBox2
 ・CommandButton1

をそれぞれ配置してから、下記ソースを貼り付けて動かしてみて下さい。

Private ws As Worksheet

Private Sub UserForm_Initialize()
  
  Set ws = Sheets("sheet1")
  
  ' // ComboBox 用テストデータ作成
  ws.Cells.Delete
  With ws.Range("A1:C10")
    .Formula = "=""R""&ROW()&""C""&COLUMN()"
    .Value = .Value
  End With
  With ws.Range("D1:D10")
    .Formula = "=""ITEM""&ROW()"
    .Value = .Value
  End With
  ' // 選択 ONLY のコンボボックス(fmStyleDropDownList)に
  ' // データを追加する
  With Me.ComboBox1
    .Style = fmStyleDropDownList
    .ColumnCount = 2
    .List = ws.Range("A1:C10").Value
  End With
  With Me.ComboBox2
    .Style = fmStyleDropDownList
    .List = ws.Range("D1:D10").Value
  End With

End Sub

' // Style が fmStyleDropDownList のコンボボックスで値を消去できるようにする
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 8 Or KeyCode = 46 Then ' 8:backspace / 46: delete key
    ComboBox1.ListIndex = -1
  End If
End Sub
Private Sub ComboBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 8 Or KeyCode = 46 Then ' 8:backspace / 46: delete key
    ComboBox2.ListIndex = -1
  End If
End Sub

Private Sub CommandButton1_Click()

  Dim ctrl As Control, txt1 As String, txt2 As String
  Dim ret As Integer
  
  For Each ctrl In Me.Controls
    Select Case ctrl.Name
      Case "ComboBox1", "ComboBox2", "TextBox1"
        If Len(Trim$(ctrl.Text)) = 0 Then
          txt1 = txt1 & ctrl.Name & vbLf
        Else
          txt2 = txt2 & ctrl.Text & vbLf
        End If
      Case Else
    End Select
  Next
  
  If Len(txt1) > 0 Then
    MsgBox "以下の値を入力してください" & vbLf & txt1, vbExclamation
    Exit Sub
  Else
    ret = MsgBox("以下の値を入力します" & vbLf & txt2, vbOKCancel)
    If ret <> vbOK Then Exit Sub
  End If

End Sub

追伸:: ....余計なお世話ですが。

■1点目: 変数名が違います。

> Dim ctrl As Control, tst1 As String, txt2 As String

txt1 As String ですよね。このようなミスを防ぐ意味で、Option Explicit
を宣言のうえ、プログラムを作成する習慣をつけた方が、上達が速いですよ。

■2点目: For Each ループについて

For Each ctrl In Me.Controls のループで

> Me.Controls(ctrl.Name).Value

とするのは、折角 For Each を使う意味が無くなってしまいますから、
そのまま ctrl.value とか、ctrl.text で使って下さい。

こんにちは。

バグらしいバグは掲載されたソースからは読み取れません。ComboBox に
どのようにデータを追加しているのか、どのようなデータなのかあたり
からも検証しないと。

また、ソースが途中で途切れてますよ。ちゃんと End Sub まで、掲載して
下さい。

とりあえず、新規ブックで Userform を挿入し、

 ・Textbox1
 ・ComboBox1
 ・ComboBox2
 ・CommandButton1

をそれぞれ配置してから、下記ソースを貼り付けて動かしてみて下さい。

Private ws As Worksheet

Private Sub ...続きを読む

Q2つ以上のチェックボックスを連動させるには?

Eecelで、同一シートに複数のチェックボックスがあるとき、ある特定のチェックボックスにチェックを入れると、他の特定のチェックボックスに自動的にチェックが入るようにするには、どうすればいいのでしょうか?

Aベストアンサー

チェックボックスは「フォーム」のチェックボックスを使用されていますか?
その場合、リンクするセルを指定できるはずです。
ここでVBAを使って
仮に1A1にあるのチェックボックスにチェックを入れた時、
B1、C1のチェックボックスにチェックを入れたいとします。
Sub test()
If Cells(1, 1) = true Then
cells(1,2)=true
cells(1,3)=true
elseif Cells(1, 1) = False Then
cells(1,2)=false
cells(1,3)=false
End if

これをA1のチェックボックスの「マクロを登録」のところで指定して下さい。

これで連動すると思いますが。

Qチェックボックスにより行の表示非表示

Excel2007を使用し、以下のようなチェックリストを作成しました。

「□」はActiveXコントロールのチェックボックスです。

1行目:□ とくにありません
2行目:□ りんご
3行目:□ もも
4行目:□ みかん
5行目:□ ばなな

2行目にチェックが入っていれば
□りんご
と表示、
2行目と5行目にチェックが入っていれば
□りんご
□ばなな
と表示、そして
2~5行目のチェックボックスにすべてチェックが入っていない場合は
□とくにありません
だけを表示させたいです。

どのようにマクロをくんだらいいでしょうか?

ちなみに、1シートに表示されるチェックボックスはこれだけでなく、
7行目:□ とくにありません
8行目:□ いぬ
9行目:□ ねこ
10行目:□ とり

と、果物、動物それぞれで同じ動作をさせたいと思っています。

IfかCaseを組めばいいのかと思っているのですが
複雑な条件文をどのように記述すればいいかわかりません。

ご教授お願いいたします!

Aベストアンサー

はてさて・・・・一体何がしたいのでしょうか??

たとえば
>2~5行目のチェックボックスにすべてチェックが入っていない場合は
>□とくにありません
>だけを表示させたいです。

ご相談の状況説明により、まだどれもチェックされてない前は「□とくにありません」だけ表示されています。
すると「いま表示されていない」りんごやももを、いったいどうやってチェックしたいのですか。


>2行目にチェックが入っていれば
>□りんご
>と表示、

2行目のりんごのチェックの後、他は隠れたままです。そのあとどうやってばななをチェックするのですか?


確かにまぁアレコレ仕込みは必要そうですが、必ずしもそんなにムズカシイお話じゃありません。
何がどうしてどうなって欲しいのか、もう一回最初から「何をしたいのか」順を追って「目に見えるように」説明してみて下さい。
この手のご相談では「補足」で思い付きで書き足してもたいがい言葉足らずなので、一回このご質問は解決で閉じて、もう一回最初からご相談を書きなおし投稿し直してみて下さい。


人気Q&Aランキング

おすすめ情報