今だけ人気マンガ100円レンタル特集♪

チェックボックスのある行を非表示にすると、チェックボックスも非表示になる方法を教えて下さい。

チェックボックスが入っている行を非表示にしても、チェックボックスだけ表示され続けてしまいます。

以前どこかでチェックボックスが非表示になるプログラムがあり、表示されなかったのですが、いろいろといじっているうちに間違って削除してしまったようです。

行の非表示を解除すると(再表示を選ぶと)、チェックボックスもちゃんと表示されるものを希望しています。

ネットで検索しても再度見つける事ができませんでした。

もしお分かりになる方がいらっしゃいましたら宜しくお願い致します。

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

A 回答 (1件)

ツールボックスのチェックボックスでしょうか?


それとも フォームのチェックボックスですか?

前者なら チェックボックスの書式設定にて変更可能なようですよ

書式設定のプロパティタブで『セルにあわせて移動やサイズ変更をする』に設定してあれば非表示あわせて隠れるようです ・・・

この回答への補足

言葉が足りなくて申し訳ありませんでした。
フォームです。

ActiveX コントロールではなくて、フォーム コントロールで作ったチェックボックスです。

あと、手動での非表示方法ではなく、VBAでのプログラム方法で教えて下さい。

お願いします。

補足日時:2010/06/18 14:08
    • good
    • 0
この回答へのお礼

自己解決してしまいました。

非表示の仕方問題があったのではなく、チェックボックスの作成時に下記のようにすれば大丈夫のようです。

Sub チェックボックス作成()

Dim Rng As Range
Set Rng = Selection

With ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=9, Top:=Rng.Top + 28, Width:=12, Height:=12).Select

With Selection
.LinkedCell = Rng.Address
.Object.Caption = ""
.Placement = xlMoveAndSize   'セルに合わせて移動やサイズ変更をする。
.PrintObject = True
End With

End With

End Sub

結局チェックボックスは、フォームコントロールではなく、ActiveXコントロールの方で作れば良かったみたいです^^

お礼日時:2010/06/19 17:44

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q セルが非表示になったらチェックボックスも非表示にする方法

VBAマクロなどで、ある条件のとき特定のセルを非表示にします。その際、セル上に貼り付けてあるチェックボックスも一緒に非表示にしたいと思ってます。

現状ではセルだけを非表示(高さを0にする)処理をしているのでチェックボックスはそのまま残ってしまい、表示になった箇所でチェックボックスが折り重なるように表示されて見苦しいのです。

自分で考えた場合、対策としてはVBAマクロでセルを非表示にする際にするしかない気がするのですが、他に良い方法はあるでしょうか?

また、VBAマクロで以外にあるセルが非表示になった場合にそのセル上に貼り付けたチェックボックスなどの部品を非表示にする方法はあるでしょうか?

部品はコントロールを使ってます。(フォームではありません)

ご教示願います。

Aベストアンサー

セルを表示させたくない理由はわかりませんが、Visible 属性でシェイプの表示操作が可能です。

ActiveSheet.Shapes("CheckBox2").Visible = False

Qエクセルでチェックボックスを非表示にしたい。

エクセルでチェックボックスを非表示にしたい。

こんにちわ。
エクセルのチェックボックス等を表示しないようにすることは可能でしょうか?

例えば
  A    B    C    D
1 チェ   チェ   チェ   チェ 
2 あああ いいい ううう えええ
(チェがチェックボックス)
のようになっている状況で
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
  A    B    C    D
1 チェ   チェ   チェ   チェ 
2 あああ     ううう えええ
のようにB2を消したら
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
  A    B    C    D
1 チェ        チェ   チェ 
2 あああ     ううう えええ

このようにB1にあったチェックボックスを非表示、もしくは削除したいです。

このようなことは可能でしょうか?
ぜひアドバイスをお願いいたします。

Aベストアンサー

ごめんなさい。私の勘違いのようです。
質問者さんのチェックボックスはユーザーフォーム上のものですよね?
私の回答は忘れてください。
以下は関連ありそうな???
http://oshiete.goo.ne.jp/qa/2962103.html
識者のご登場をお待ちくださいませ。

Qチェックボックスの箱のサイズとフォントサイズは変更できるの?

こんにちわ。

エクセル2000でチェックボックスを作成したのですが、
やや、小さいのでサイズを大きくしたいのです。
ボックスサイズ、ボックスの横に入れる文字の
フォントサイズは大きくできるのでしょうか?
もし、できるのなら方法を教えてください。

よろしくおねがいします。

Aベストアンサー

コントロールツールボックスのチェックボックスならプロパティにFontがあるので変更できます。

フォームのチェックボックスやオプションボタンのフォントサイズは変更できなかったと思いますが、変更したように見せかけはできます。使用上、特に問題はないと思います。(だからダイアログにフォントがない?)

チェックボックスの位置によって、
(1)チェックボックス(四角)がセルの中央にある場合
 チェックボックスのテキストを必要な長さの空白にしてしまいます。
 チェックボックス(四角)の右横のセルにチェックボックスの説明のテキストを入れます。
 セルの書式設定でフォントが変更できます。
(2)チェックボックス(四角)をセルの境目などにセットする場合
 チェックボックスのテキストを必要な長さの空白にしてしまいます。
 図形描写からテキストボックスを選択し、チェックボックスの説明のテキストを入れます。
 テキストボックスは『線なし』にしておきます。2行で表示したりもできます。
 チェックボックスとテキストボックスを重ねて、見た目を調節します。
 テキストボックスを選択し、右クリック→順序→最背面へ移動 とします。

ご参考に。

コントロールツールボックスのチェックボックスならプロパティにFontがあるので変更できます。

フォームのチェックボックスやオプションボタンのフォントサイズは変更できなかったと思いますが、変更したように見せかけはできます。使用上、特に問題はないと思います。(だからダイアログにフォントがない?)

チェックボックスの位置によって、
(1)チェックボックス(四角)がセルの中央にある場合
 チェックボックスのテキストを必要な長さの空白にしてしまいます。
 チェックボックス(四角)の右横のセ...続きを読む

QExcel マクロで 列と行を非表示にするには?

Excel マクロ初心者です

ボタンで sheetの 行1~10を非表示にして その後さらに列のBA~BJを非表示にするマクロを設定したいのですが マクロの自動記録にすると シート上一部のセルのみが残り
その他は全て消えてしまいました。

行または列だけの非表示の自動記録は 正常に動きますが
単独のマクロを行と 列でそれぞれ作り、片方を動かした後 もう一方を動かすとやはり一部のみ残り
他は全て消えてしまいます。

マクロで行と、列を同時に非表示にするのは無理なんでしょうか?

Aベストアンサー

こんにちは!
再表示もついでに・・・

Sub 非表示()
Rows(1 & ":" & 10).Hidden = True
Columns("BA:BJ").Hidden = True
End Sub

Sub 再表示()
Rows.Hidden = False
Columns.Hidden = False
End Sub

こんな感じではどうでしょうか?m(_ _)m

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QエクセルVBAで2種類のCheckboxについて

ワークシート上に配置したチェックボックスですが、
フォームから挿入したものなら
Sub TEST01()
ActiveSheet.CheckBoxes.Value = xlOn
End Sub
で、全てのチェックボックスがオンになります。

コントロールツールボックスから貼り付けたチェックボックスの場合はどのように記述するのでしょうか?

Aベストアンサー

エキスパートさん、こんにちは。

KenKen_SPさんにお任せすれば解決でしょうが、横からちょこっとお節介。。

>Sheets("Sheet1").OLEObject(CheckBox & i).Value = x

Sheets("Sheet1").OLEObjects("CheckBox" & i).Object.Value = x

一行のコードに3ヶ所のミス。
やりましたね、日本新記録!!。(^o^)/~~
 

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

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

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

2行目:□ りんご
3行目:□ もも
4行目:□ みかん
5行目:□ ばなな

6行目:とくにありません
7行目:りんごがすき
8行目:ももがすき
9行目:みかんがすき
10行目:ばなながすき

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

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

ちなみに、1シートに表示されるチェックボックスはこれだけでなく、

11行目:□ いぬ
12行目:□ ねこ
13行目:□ とり

14行目:とくにありません
15行目:いぬがすき
16行目:ねこがすき
17行目:とりがすき

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

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

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

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

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

2行目:□ りんご
3行目:□ もも
4行目:□ みかん
5行目:□ ばなな

6行目:とくにありません
7行目:りんごがすき
8行目:ももがすき
9行目:みかんがすき
10行目:ばなながすき

2行目にチェックが入っていれば
7行目:りんごがすき
を表示、
2行目と5行目にチェックが入っていれば
7行目:りんごがすき
10行目:ばなながすき
を表示、そして
2~5行目のチェックボックスにすべてチェ...続きを読む

Aベストアンサー

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

という事はそれぞれのチェックボックスごとに、イチイチマクロを作成してかなきゃならないって事を十分理解していますね。


手順:
CheckBox1から4まで準備する
シートモジュールにそれぞれ次のように準備する

Private Sub CheckBox1_Click()
Rows(7).Hidden = Not CheckBox1.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Private Sub CheckBox2_Click()
Rows(8).Hidden = Not CheckBox2.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Private Sub CheckBox3_Click()
Rows(9).Hidden = Not CheckBox3.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Private Sub CheckBox4_Click()
Rows(10).Hidden = Not CheckBox4.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Sub reset_check1to4()
CheckBox1 = False
CheckBox2 = False
CheckBox3 = False
CheckBox4 = False
End Sub


最初「まだどれもチェックされていない」とき、「とくになし」だけ表示し他を隠した状態を初期の状態にするため、reset_check1to4をまず実行する

11行以下のチェックボックス5,6,7についても、同様にして一つずつ準備する。

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

という事はそれぞれのチェックボックスごとに、イチイチマクロを作成してかなきゃならないって事を十分理解していますね。


手順:
CheckBox1から4まで準備する
シートモジュールにそれぞれ次のように準備する

Private Sub CheckBox1_Click()
Rows(7).Hidden = Not CheckBox1.Value
Rows(6).Hidden = CheckBox1.Value Or CheckBox2.Value Or CheckBox3.Value Or CheckBox4.Value
End Sub

Private Sub CheckBox2_Click()
Rows(8).Hidden = Not CheckBox2...続きを読む

QExcel2007 でのチェックボックスの名称

Excel2007 でフォームコントロールのチェックボックスのオブジェクト名のつけ方を教えてください。

普通にチェックボックスをつくって、プロパティを表示してもオブジェクト名をつけれるところがありません。

ActiveXのチェックボックスだと該当するものがでてきます。

やり方を教えて頂ければ助かります。

Aベストアンサー

ぁ、失礼。
[オブジェクトの選択]は2007では[ホーム]タブの[編集]-[検索と選択]にあります。
さらにその下の[オブジェクトの選択と表示]メニューを使うと、
このメニューからでもオブジェクト名を変更する事ができます。

ついでにVBAで名前を設定する例。
'選択して
If TypeName(Selection) = "CheckBox" Then
  Selection.Name = "Check_1"
End If

'あるいはインデックス順にLoopして連番、またはTopLeftCell情報の利用、など
Dim cb As CheckBox
Dim i As Long
For Each cb In ActiveSheet.CheckBoxes
  i = i + 1
  cb.Name = "Check_" & i
  'cb.Name = "Check_" & cb.TopLeftCell.Address(0, 0)
Next

Qエクセルでチェックボックスをクリックしたらセルに数値を入力&消去

下記のような表を作成しています。
□はチェックボックス(コントロールツールボックスから作成したもの)で、
A1のチェックボックスにチェックするとD1とE1に○印が入り、
チェックを消すと○印も消えるようにしたいのです。
(B,Cのチェックボックスは違うセルに○印を入れるのですが、
他のチェックボックスと○を付ける項目が重複している所もあります)
 ABCDEFG
1□□□
2□□□

コードはこのようなものを書きました。
Private Sub CheckBox1_Click()
Dim teiban As Integer
teiban = ActiveSheet.CheckBox1.Value
Select Case teiban
Case True
Range("D1,E1").Value = "○"
Case False
Range("D1,E1").Value = ""
Case Else
Range("D1,E1").Value = ""
End Select
End Sub

同じ列にあるチェックボックスは違う行で同じ列に○印が入るのですが、
コードはいちいちチェックボックスごとに書かなければいけないでしょうか?

それと、行数を増やす場合があるのですが、1行目をコピーして3行目に
貼り付けてもチェックボックスはコピーされません。
何か方法がありますでしょうか?

もしチェックボックスではこのような事ができないのであれば
他にやり方などあれば教えていただけたらと思います。

使用しているのはWINDOWS98,EXCEL97です。
ご存知の方、よろしくお願いします。

下記のような表を作成しています。
□はチェックボックス(コントロールツールボックスから作成したもの)で、
A1のチェックボックスにチェックするとD1とE1に○印が入り、
チェックを消すと○印も消えるようにしたいのです。
(B,Cのチェックボックスは違うセルに○印を入れるのですが、
他のチェックボックスと○を付ける項目が重複している所もあります)
 ABCDEFG
1□□□
2□□□

コードはこのようなものを書きました。
Private Sub CheckBox1_Click()
Dim teiban As Integer
teiban = ActiveSh...続きを読む

Aベストアンサー

もう回答してもいいんでしょうか・・・?

コントロールツールボックスのチェックボックスはデザインモードならコピーできるはずです。
ただし、この場合は各チェックボックス毎にコードを書く必要があります。共通ルーチンを呼ぶようにできますが、イベントをまとめてつかまえられないので、コントロールの数分イベントを書く必要があるでしょう。VBAには、VBのようにコントロール配列がないからです。(ユーザーフォーム上ではコントロール配列風な書き方もできますが、シート上では行ったことがありません。余りその気ももおきませんが・・・)

フォームのチェックボックスを使えば、チェックボックスを貼り付けるだけで、コードを追加しなくても(1つのコードで)対応可能です。下はその例です。1つのマクロしかありませんが、理屈では何個のチェックボックスがあってももかまいません。必要な分だけチェックボックスをコピーしてください。(何個まで可能かは確認できていません)
フォームとコントロールツールボックスのコントロールの特性の違いを理解して使うべきでしょう。


作り方
0.下のコードを標準モジュールに貼り付けます。
   ※A、B、C列にチェックボックスがある例です。
   ※登録したマクロ内で、チェックボックスの位置を調べています。
   ※位置が決れば、チェックボックスの値で処理が決定できる理屈です。

1.フォームのチェックボックスを使い、セルA1に納まるように配置します。

2.セルA1のチェックボックスを右クリックし、下のマクロを登録します。

3.セルA1のチェックボックスをコピーして、B1、C1に貼り付けます。

4.1行目を選択して、3行目にコピーします。後は必要な回数繰り返します。
   ※下のコードのB、C列の処理は例です。実状にあうように修正して下さい。
      (Excel97 で確認)

ここから

Sub checkBox_MacroTest()
  Dim chkboxVal As Boolean  'チェックボックスの値
  Dim rw As Long       'チェックボックスのある行
  Dim col As Integer     'チェックボックスのある列

  'チェックボックスの値
  chkboxVal = (ActiveSheet.CheckBoxes(Application.Caller).Value = 1)

  'チェックボックスの位置を調べる
  ActiveSheet.CheckBoxes(Application.Caller).Select
    rw = Selection.TopLeftCell.Row
    col = Selection.TopLeftCell.Column
    Selection.TopLeftCell.Select

  '位置によって『○』を付ける位置を決定する。Falseなら消す。
  Select Case col
    Case 1   'A列のチェックボックス。D、E列を操作している
      Cells(rw, 4) = IIf(chkboxVal, "○", "")
      Cells(rw, 5) = IIf(chkboxVal, "○", "")
    Case 2   'B列のチェックボックス。F、G列を操作している(例)
      Cells(rw, 6) = IIf(chkboxVal, "○", "")
      Cells(rw, 7) = IIf(chkboxVal, "○", "")
    Case 3   'C列のチェックボックス。H、I列を操作している(例)
      Cells(rw, 8) = IIf(chkboxVal, "○", "")
      Cells(rw, 9) = IIf(chkboxVal, "○", "")
  End Select
End Sub

もう回答してもいいんでしょうか・・・?

コントロールツールボックスのチェックボックスはデザインモードならコピーできるはずです。
ただし、この場合は各チェックボックス毎にコードを書く必要があります。共通ルーチンを呼ぶようにできますが、イベントをまとめてつかまえられないので、コントロールの数分イベントを書く必要があるでしょう。VBAには、VBのようにコントロール配列がないからです。(ユーザーフォーム上ではコントロール配列風な書き方もできますが、シート上では行ったことがありません。...続きを読む

QExcelでチェックボックスを使った列のコピー方法

案件進捗表を作成しています。
進捗に応じて右へ右へとチェックボックスにチェックを入れていく形にしていて、
チェックボックスのとなりのセルに真偽の値を入れるように反映させています。
案件が増えるごとに、1,2,3行と・・とデータを増やしていきたいのですが、
1行目に作成した形式を下にコピーするとチェックボックスが全データ同じ動きをしてしまいます。
となりのセルに「TRUE」などを返すように反映させているチェックボックスはコピーできませんか?
教えてください。よろしくお願いします。

Aベストアンサー

エクセルでは、「フォーム」のチェックボックスと「ActiveXコントロール(コントロールツールボックス)」のチェックボックスの、2種類のチェックボックスが利用できます。
ご相談ではいったいどっちを使って作成したのか、しっかり情報提供してください。

#余談ですがご利用のエクセルのバージョンについても、必ず明記する事を憶えて下さい。


ただまぁ、どちらを使っても「下にコピーしただけで隣に結果が返る」ようにする方法は、残念ですがありません。



というワケで出来る方法:
1.今まで作成したチェックボックスはすべて消去する
2.「フォーム」のチェックボックスをシートに配置する
  その際、必ず「セルの中に納まる」ようにセルの大きさも含めて調整する
3.コントロールの書式設定は「設定しない」でおく
4.右クリックして「マクロの登録」を開始する
5.新規作成を選択、現れた画面で

Sub チェック1_Click()
with activesheet.shapes(application.caller).topleftcell.offset(0, 1)
.value = not .value
end with
End Sub

のように記入作成する

6.ファイルメニューから終了してエクセルに戻る
7.マクロを登録したチェックボックス「が載っているセル」をコピーし、必要なセルに貼り付ける
8.チェックを入れたり外すと、右隣のセルに-1と0が交互に現れる



#おまけ
-1と0のセルにセルの書式設定の表示形式のユーザー定義で
0;"TRUE";"FALSE"
と設定しておくと、TRUEとFALSEの表示になります。「見た目」が重要な時は適宜利用してください。

エクセルでは、「フォーム」のチェックボックスと「ActiveXコントロール(コントロールツールボックス)」のチェックボックスの、2種類のチェックボックスが利用できます。
ご相談ではいったいどっちを使って作成したのか、しっかり情報提供してください。

#余談ですがご利用のエクセルのバージョンについても、必ず明記する事を憶えて下さい。


ただまぁ、どちらを使っても「下にコピーしただけで隣に結果が返る」ようにする方法は、残念ですがありません。



というワケで出来る方法:
1.今まで作成した...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング