No.5ベストアンサー
- 回答日時:
#2の回答者です。
自己解決していくつもりでしたら、余計なことになりますが、少しちょっとしたヒントを書いておきます。
1. ThisWorkbook でのイベントは、ブックにひとつで足ります。
さらに、エクセル全体で当てはめるためには、アドインにするとよいです。
またさらに、新規のブックに当てはめる時は、アドインにクラスからインスタンスを設けるとよいです。
2. 共通型のイベント型マクロ(ThisWorkbookモジュールを使う)を使う場合は。
>共通するキーワードがあれば、良いです
> キーワードは近いものはありません
「チェックシートは16種類」とは、16シートと考えたからです。
なるべく作業手順を経ランスことが目的だったと思います。
私が聞いた趣旨がお分かりならなかったかもしれませんが、統一したイベント型マクロにする時には、してほしくない、または不要なシートがありえます。その場合は、それを除外する意味です。特定のシート以外は全部、マクロが起動するということも可能です。
3.イベント型マクロが起動してほしい列や行と、そうでないところ。
本来は、シートの中でも、イベント型マクロが起動してほしい所と、そうでないところが別れるはずです。そうした除外条件をご自身でつけられるつもりなら、それは良いのですが、そうでない場合、ややこしい状態に陥ることがあります。
なお、
>これはセルの色のみならず罫線や文字にも流用できるのでしょうか?
可能性はあっても、現状の質問からは、具体的な内容でない限りは、何をしたいのか分かりません。
文字とか罫線とか具体的にどうするとか、もう少し詳しい説明がほしいところです。罫線とは枠囲みするのでしょうか、下線をつけることも考えられます。文字とは、特定の文字を入れることや、文字に対して色を塗る、フォントの色を替えることもありえます。選択肢はいくつもあります。
No.4
- 回答日時:
前回回答を修正
セルの色のみならず罫線や文字にも流用できると思います。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target <> "" Then
Select Case Target.Column
Case 1
If Target.Interior.ColorIndex = xlNone Then
Target.Interior.ColorIndex = 6
ElseIf Target.Interior.ColorIndex <> xlNone Then
Target.Interior.ColorIndex = xlNone
End If
Case 2
If Target.Font.ColorIndex = xlAutomatic Then
Target.Font.ColorIndex = 3
ElseIf Target.Font.ColorIndex <> xlAutomatic Then
Target.Font.ColorIndex = xlAutomatic
End If
Case 3
If Target.Borders(xlEdgeTop).LineStyle = xlNone Then
Target.Borders(xlEdgeLeft).ThemeColor = 5
Target.Borders(xlEdgeLeft).Weight = xlThick
Target.Borders(xlEdgeTop).ThemeColor = 5
Target.Borders(xlEdgeTop).Weight = xlThick
Target.Borders(xlEdgeRight).ThemeColor = 5
Target.Borders(xlEdgeRight).Weight = xlThick
Target.Borders(xlEdgeBottom).ThemeColor = 5
Target.Borders(xlEdgeBottom).Weight = xlThick
ElseIf Target.Borders(xlEdgeTop).LineStyle <> xlNone Then
'罫線を消す条件と、罫線を消す位置については考慮の必要がある
Target.Borders(xlEdgeTop).LineStyle = xlNone
Target.Borders(xlEdgeLeft).LineStyle = xlNone
Target.Borders(xlEdgeBottom).LineStyle = xlNone
Target.Borders(xlEdgeRight).LineStyle = xlNone
End If
End Select
End If
Cancel = True
End Sub
No.3
- 回答日時:
VBAを使ってもいいのでしたら、
そのチェックシートがSheet1に作成されているとして
Sheet1のモジュールに次のコードを入れます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range)
If Target <> "" Then
If Target.Interior.ColorIndex = xlNone Then
Target.Interior.ColorIndex = 6
ElseIf Target.Interior.ColorIndex <> xlNone Then
Target.Interior.ColorIndex = xlNone
End If
End If
End Sub
Target.Interior.ColorIndex = 6 は そのセルの内部を黄色にします。
http://www.relief.jp/docs/000482.html
その作ったファイルを保存するときには、マクロ有効Bookで保存する
(.xlsm)
画像が非常にわかりやすいです。助かります。
ちなみに、これはセルの色のみならず罫線や文字にも流用できるのでしょうか?
自分でも調べてみます。
No.2
- 回答日時:
チェックボックス(ただしフォームコントロールに限る)でも、
クリック(ダブルクリック)するのでも、マクロからすれば、何百でも、何千でもほぼ同じです。(本物のワンクリック・マクロはとても難しいです)
・チェックシートは16種類 --共通するキーワードがあれば、良いです
・各チェックシートのチェック項目は100~150項目-- 数自体は問題ありません。
・一度すべて作ってしまえば編集はしない、作成作業は1度きり--マクロは、アドインのオブジェクトにしたほうがよいのですが、それはつくるまでに手間が掛かります。今回は、該当するブックに備え付けるタイプにしました。
手間は、ダブルクリックイベントのほうが楽です、
これは仮に作ったものですが、ALT+ F11 または、開発-コード-Visual Basic で、VBEditor 画面を開けたら、プロジェクト・エクスプローラ(Ctrl+ R)から
ThisWorkbookの文字をダブルクリックで開けて、以下のコードを貼り付けます。
ほんの一例です。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Sh.Name Like "Sh*" Then 'シートの名前が、Sh であること
If Target.Value <> "" Then '空のセルでないこと
If Target.Column = 2 Then 'B列 ダブルクリックは、2列め
If Target.Interior.ColorIndex < 0 Then 色がついていないなら、
Target.Interior.ColorIndex = 34 '色をつける(パステルの水色)
Else
Target.Interior.ColorIndex = xlColorIndexAutomatic '色があるなら消す
End If
End If
End If
End If
Cancel = True 'ダブルクリックのセルの待機状態を戻す
End Sub
ちなみに、
> 一つずつ右クリック、プロパティとするのが大変で………
フォームコントロールのチェックボックスには、鯛焼きの型とおなじように、ひとつの型から同じものは何百・何千とつくることは可能です。つまり、一つ設定すれば、全部同じものができますが、このボタンは、ユーザーがうっかり移動できてしまうのが問題点です。
これは便利ですね!
あくまで印刷時に判別できれば良いので、この方法は最適解に近いです。
ちなみに
>・チェックシートは16種類 --共通するキーワードがあれば、良いです
キーワードは近いものはありません
参考にします
ありがとうございます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- 事務・総務 事務の目標について 今の会社に13年勤めてます。 毎年目標を設定しているのですが、 もう改善出来るこ 4 2023/08/24 18:34
- いじめ・人間関係 もうメンタル崩壊しそうです。 長くてすいません!見れる人だけで大丈夫です! パワハラでしょうか?入っ 3 2023/07/04 19:25
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- その他(Microsoft Office) (至急)Googleのスプレッドシートの条件付き書式について 2 2022/09/11 08:50
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- Excel(エクセル) Excel リンク先のエクセルファイルの削除 同時に行を削除したい 1 2022/11/29 16:20
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) エクセル:条件付き書式で色付けについて 2 2023/03/30 21:53
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの外枠太罫線を2~3倍さ...
-
Excelの条件付き書式設定の太い...
-
excel2003 罫線だけを保護したい
-
エクセルで文字を入力すると罫...
-
パワーポイントで、表の一部を...
-
EXCELで、下線の太さを変...
-
エクセルの罫線を固定させる方...
-
罫線が引かれているセルの個数...
-
エクセル 罫線入りの文字 文...
-
決まった罫線のなかで、文章入...
-
勝手に背景に色が付いて困っ...
-
エクセル 入力されていない線...
-
エクセルで罫線も一緒に並び替...
-
Wordで表のセル幅を超えたら次...
-
【エクセル】謎の枠線の消し方
-
エクセルのアンダーラインについて
-
【VBA】Excelで罫線を引きたい
-
エクセル表の罫線(縦)が消せ...
-
エクセルExcel 「/」セルの斜...
-
エクセル の縦線
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの条件付き書式設定の太い...
-
Excelの外枠太罫線を2~3倍さ...
-
excel2003 罫線だけを保護したい
-
EXCELで、下線の太さを変...
-
罫線の色を薄くしたい
-
【エクセル】謎の枠線の消し方
-
エクセルで文字を入力すると罫...
-
エクセルのアンダーラインについて
-
エクセル
-
決まった罫線のなかで、文章入...
-
エクセルで罫線も一緒に並び替...
-
パワーポイントで、表の一部を...
-
エクセル 罫線入りの文字 文...
-
勝手に背景に色が付いて困っ...
-
罫線が引かれているセルの個数...
-
EXCELのオートフィルタで罫線が...
-
エクセル 入力されていない線...
-
罫線の色をまとめて変更する
-
エクセル表の罫線(縦)が消せ...
-
Excelでアンダーラインに文字が...
おすすめ情報