
EXCEL2007のクラスモジュールについての質問です。
2012/5/2816:35:03
EXCEL2007のクラスモジュールについての質問です。
シート上のチェックボックスのチェックが見えにくいので□と■のように、白黒反転で判別するように書類を作ってと頼まれました。
ActiveXのラベルを使い、プロパティのBorderStyleを1-fmBorderStyleSingleに変更してCaptionを空白にし、シートモジュールに下記のプログラムを書いて思っていた動作を得ることが出来たのですが。
Private Sub Label1_Click()
Select Case Label1.BackColor
Case vbWhite
Label1.BackColor = vbBlack
Case Else
Label1.BackColor = vbWhite
End Select
End Sub
このラベルを今のところ135個使っています。
工事写真台帳にも使っているので、写真の枚数が増えれば元の様式をコピーして増やすことになり、ラベルも増えることになります。
どのくらい増えるのかは撮ってきた写真の枚数次第なので分からない状態です。
上記のLabel1をLabel2、Label3、・・・・・・と増やしていけばいいのでしょうが恐ろしく長くなります。
疑似配列やクラスモジュールやOLEObjectなど、1ヶ月程合間を見て勉強しましたが、どうしても分かりません。
本当は基礎の基礎から勉強すべきなのでしょうが、仕事上時間切れが来ております。
どうか御教示下さるようよろしくお願いします。
ベストアンサーに選ばれた回答
2012/5/2908:49:32
□と■の切り替えなら、ダブルクリックするたびにセルそのものの塗りつぶしを白にしたり黒にしたりすれば簡単でしょうか。
ワークシートをダブルクリックしたときに発生する、Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)にコードを作ってしまいます。
コードそのものは、次のように考えればいいでしょう。
①Targetには、どのセルがダブルクリックされたかが入っていて、そのセルが□と■の切り替えセルかどうかを判定します。対象外のセルであれば、Cancel=falseにして終了します。
②対象のセルであれば、□ならば■に、■ならば□に塗りつぶす処理を行い、Cancel=Trueにして処理を終了します。
このような作りにしたほうが、簡単かつ軽いでしょう。
ActiveXコントロールは本来フォームに貼り付けて使うべきもので、シート上に直接貼り付けて使うと、ブックが重くなり、時々落ちます!
ベストアンサー以外の回答
1〜1件/1件中
2012/5/2911:25:22
これまで、いろいろなExcelVBAの本を見てきましたが、クラスモジュールになるとふれて終わる程度のものしかないようです。
大村あつし氏の「ExcelユーザーのためのVBAプログラミング入門」というのが唯一、VBのコントロールとの比較から始まって、コントロールのクラスモジュール化といった話があったような記憶がありますが、今では古本としてしか手に入らないので、個人的に残念に思っているところです。
ただWEB上では、次のようなサイトがあります。コントロールまで行けるかどうかはわかりませんが、わかりやすく説明されています。
http://www.excellenceweb.net/vba/class/
このカテゴリの回答受付中の質問
- Numbersについて質問が2つあります。 1、こちらのNumbersの最新のヴァージョンの...
- googleフォームの均等目盛について,教えて下さい。 通常,均等目盛りは,左側...
- この項目が活性していなくて、ボタンが押せません。 どのような手順で押せるよう...
- マクロについてどなたか教えていただけませんでしょうか? アクセスで抽出した...
- 東京都の「総人口」と「総世帯」と「一世帯あたりの人口」、港区の「総人口」と「総世帯」と...
- エクセルにセルの色替え(ホーム画面より,手動)した後に別シートの対応セルの色...
- iPadでexcelを利用している方に質問です。iPadのexcelで散布図を作りたかったので...
- iPhone版(自分はiPadで使ってます)Excelにて、テンプレート保存はできないのでし...
- 全ブックの全シートの文字列を検索後、該当行を全て抽出するマクロの作成を手伝っ...
- 先生の言葉が生徒の成績に与える影響の相関をみたいです。 1ほめる、2ほめる+...
このカテゴリの投票受付中の質問
- エクセルVBAで質問です。 エクセルで作成したグラフや表を、新規ワードファイルを...
- エクセル 集計について質問です。 毎日膨大な量のデータを、コピペして計算式を入...
- マクロの質問です。 下記のように、sheet1を参考にしてsheet2のB列の2行目以降に...
- Excelの365で2016版を使用することは可能ですか? 可能でしたらやり方を教えてく...
- Excelでリピーターを抽出したいです。 A列に顧客名があり、列内に2つ以上同じ名前...
- エクセル(Excel)について質問です。 A1~A10のセルに10以下の数値があれば〇、...
- データをCSVでダウンロードして、編集していたのですが、保存するときにEXCELでは...
- エクセルの使い方について質問なのですが、散布図から出した近似直線を延長するや...
- エクセルで在庫の適正在庫の出し方を教えて下さい。 適切な在庫を求めるのに便...
- スプレッドシート(エクセル)にoffice2019で作ったWordファイルを挿入したいです。...
この質問につけられたタグ
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。

