https://oshiete.goo.ne.jp/qa/9983012.html ← 前回この質問をし、解決しましたが、追記で
教えて頂きたいことがあります。
図の赤枠のデータを現在の「色分け」シートから「シート1」に移動し、「色分け」シートの
色付けたいです。
前回教えて頂いたコードをどのように修正すれば良いですか?
宜しくお願い致します。
No.6ベストアンサー
- 回答日時:
どうも失礼しました。
No.5で抜けていた部分があります。
①の場合、ActiveXコントロールのコマンドボタンを挿入後、ボタン上でダブルクリックが必要でした。
そうしないとVBE画面が表示されません。
②は大丈夫だと思います。m(_ _)m
No.7
- 回答日時:
>②のボタンが起動しないので、デザインモードでダブルクリックしVBAを開くと ①と②のコード画面が表示されます。
コマンドボタンをクリックしたときのイベントなので
当然同じ画面に表示されるはずです。
Private Sub CommandButton1_Click()
End Sub
と
Private Sub CommandButton2_Click()
End Sub
のように二つのコードが存在していませんか?
(Aボタン・Bボタンのコード)
それぞれのボタンをクリックした場合のコードを
Private Sub ○○○()
と
End Sub
の間に記載すれば、お望みの動きになると思いますが・・・
おそらくどちらか一方が
Call ○○
(○○は標準モジュールにあるマクロ名)
といったコードになるのでは?m(_ _)m
こんばんは。
>おそらくどちらか一方が
Call ○○
(○○は標準モジュールにあるマクロ名)
そうですね。色々触って、Private Sub CommandButton1_Click()・・・End Subの方は、「ActiveX」でボタンと作り、もう一つのボタンは
挿入からボタンを作り、「マクロの登録」をし直して起動させる事が出来ました。
色々と面倒なことを丁寧に教えて頂いて助かりました。 超・超初心者なのでVBAを学びたいなと思うのですが、独学だと難しいですよね・・・
No.5
- 回答日時:
何度もごめんなさい。
もう一度補足を読み返してみて・・・
結局「シート1」にコマンドボタンを挿入する方法がお望みだったのですかね?
① コマンドボタンの場合
メニュー → 開発 → 挿入 → コマンドボタン(ActiveXコントロールのコマンドボタンの方が良いと思います。)を選択
>Private Sub CommandButton1_Click()
>|
>End Sub
となりますので、カーソル部分に前回のコード(1行目と最終行「End Sub」がダブらないように)
デザインモードを解除
これでコマンドボタンをクリックすれば大丈夫のはずです。
② オートシェイプにマクロの登録をする場合
メニュー → 挿入 → 図形から好みのオートシェイプを挿入 → 挿入したオートシェイプ上で右クリック → マクロの登録 → 新規作成
あとは①と同じです。
こちらの方が良かったのでしょうか?m(_ _)m
No.4
- 回答日時:
続けてお邪魔します。
前回のコマンドボタンのコードを「シート1」のシートモジュールにする方法ですね。
マクロの登録ではなく、ご自身でコードを記載しなければなりません。
画面左下の「シート1」のシート見出し上で右クリック → コードの表示 → VBE画面にカーソルが点滅していますね。
そこにご自身で「マクロ名」を入力します。
たとえば「色付け」というマクロを登録したい(作りたい)場合は
(マクロ名は好きな名前で構いません)
sub 色付け と入力 → Enter (「sub」の後には必ず半角スペースを入れます)
これで
>Sub 色付け()
>| (←ココにカーソルが点滅する)
>End Sub
となり行間にカーソルが点滅しているはずです。
そこへNo.2のコードの最初の行(Private Sub CommandButton1_Click())と
最後の行(End Sub)以外の行をコピー&ペーストします。
これで「色付け」というマクロが「シート1」のシートモジュールとして出来上がりましたので
マクロを実行したい場合は
Alt+F8キー → お作りになったマクロ名が並んでいる場合は実行したいマクロをクリック → 実行
これで選んだマクロが実行されます。
※ 標準モジュールにマクロがある場合もここに表示されます。
尚、No.2のコードは
>With ActiveSheet・・・
としていますので、必ず「シート1」をアクティブにしてマクロを実行してみてください。
※ 余談ですが、Changeイベント、ダブルクリックイベントなどシートモジュールにしなければならない場合
も各シートのシートモジュールにします。m(_ _)m
No.3
- 回答日時:
No.1です。
>もうひとつのモジュール(マクロ)に追記でも大丈夫ということですね。
追記とは「シート1」のシートモジュールに追記!という意味ですかね?
当方の記憶では
標準モジュールのマクロを呼び出すだけのコードだったような気がするのですが・・・
今回のコードであればもちろん標準モジュールのコードは不要ですし、
そのマクロを呼び出すシートモジュールも不要です。
>もし、「色分け」シートの「B列」を削除した場合・・・
というコトは色を付ける列はB列以降になる!というコトでしょうか?
そうであれば、コード内の
>For j = 3 To wS.Cells(1, Columns.Count).End(xlToLeft).Column
の「3」を「2」に変えるだけでいけるはずです。
「3」とはC列の列番号なので
C列から1行目最終列まで!
という意味なので・・・m(_ _)m
No.2
- 回答日時:
こんにちは!
前回、回答した者です。
今回の質問は「シート1」にコマンドボタンなりを配置し、クリックすると「色分け」シートの1行目項目セルの色を変えたい!
というコトですね。
前回は少し手抜きをして、標準モジュールに記載したコードをそのまま利用するようにしていましたが、
「シート1」のコマンドボタンにそのままコードを記載すれば大丈夫だと思います。
尚、「色分け表」の配置は画像通りでシート1のD15~I26セルの範囲に作成してあるとします。
コマンドボタンのコードを↓にしてみてください。
Private Sub CommandButton1_Click()
Dim j As Long, c As Range
Dim myRng As Range, wS As Worksheet
Set wS = Worksheets("色分け")
With ActiveSheet
Set myRng = .Range("E16:I26")
For j = 3 To wS.Cells(1, Columns.Count).End(xlToLeft).Column
Set c = myRng.Find(what:=wS.Cells(1, j), LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
wS.Cells(1, j).Interior.Color = .Cells(c.Row, "D").Interior.Color
Else
wS.Cells(1, j).Interior.Color = xlNone
End If
Next j
End With
End Sub
※ コマンドボタンでなくても「シート1」のシートモジュールで構いません。
※ 「色分け」シートの項目が表内にない場合、そのセルの色は「塗りつぶしなし」にしています。
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
一つずつ自力で参照先の記述を修正するしかないんですけど(´・ω・`)
絶対参照なのか相対参照なのか、演算で参照先を求めているのか分かりませんが、
やり方に応じた修正をしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelのVBAのマクロで他のシー...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
エクセルVBA Ifでシート名が合...
-
シートが保護されている状態で...
-
【エクセルVBA】「Protect User...
-
別のシートから値を取得するとき
-
特定の文字を含むシートだけマ...
-
実行時エラー'1004': WorkSheet...
-
userFormに貼り付けたLabelを変...
-
Worksheet_Changeの内容を標準...
-
トグルボタン一部を一度にON OF...
-
重複するidをデータごとにまと...
-
VBA 検索して一致したセル...
-
VBAでオブジェクト変数にsetし...
-
Excel VBA 文字列のセルを反映...
-
excelのマクロで該当処理できな...
-
Excel VBA で自然対数の関数Ln...
-
ブック名、シート名を他のモジ...
-
エクセルのマクロでアクティブ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
別のシートから値を取得するとき
-
ブック名、シート名を他のモジ...
-
実行時エラー'1004': WorkSheet...
-
Excelマクロのエラーを解決した...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
エクセルのシート名変更で重複...
-
実行時エラー1004「Select メソ...
-
VBAで同じシート名のコピー時は...
-
エクセルで通し番号を入れてチ...
-
同じ作業を複数のシートに実行...
-
Excel VBA リンク先をシート...
-
ExcelのVBAのマクロで他のシー...
-
Vba UserformからExcelシートの...
-
【Excel VBA】Worksheets().Act...
-
VBA 存在しないシートを選...
おすすめ情報
返信が遅くなりすみません。
またまた、ご丁寧にありがとうございます。
>「色分け表」の配置は画像通りでシート1のD15~I26セルの範囲に作成してあるとします。
はい。この範囲で大丈夫です。
>※ コマンドボタンでなくても「シート1」のシートモジュールで構いません。
もうひとつのモジュール(マクロ)に追記でも大丈夫ということですね。
>※ 「色分け」シートの項目が表内にない場合、そのセルの色は「塗りつぶしなし」にしています。
はい、そうです。
このコードで、仕事の動作がすっきりしました。まさにこの通りにしたかったので
とてもうれしいです。
もし、「色分け」シートの「B列」を削除した場合のコードを教えて頂けると嬉しいです。
色んなデータに対応できるパターンを知っておきたくて。
もし、お時間があればで構いません。
よろしくお願い致します。
すみません、超・超初心者なので 理解が出来ていませんでした。「シート1」の「シートモジュール」→「コードの表示」を開き、そこにコードを貼り付けました。 ですが、色分けを開始する、ボタンに「マクロの登録」をしようとしましたが、何も表示されません。毎回「コードの表示」を開き「実行」を押すのでしょうか?
>For j = 3 To wS.Cells(1, Columns.Count).End(xlToLeft).Column
の「3」を「2」に変えるだけでいけるはずです。←こちらは理解できました!
NO.4~NO.6まで回答ありがとうございます。
NO.5とNO.6を試して、色分けをボタンを使って出来ました。ボタンを使いたかったんです(#^.^#)
したい作業をまとめると、「シート1」のある2つのマクロボタンAとB(A:色分け B:別の作業)を使って作業する。
まず、①Aボタン「シート1」で「シート色分け」の作業をする。②Bボタン「シート1」の別の作業をする(標準モジュール使用 module1)
NO.5とNO.6で色分けは上手く出来たのですが、②のボタンが起動しないので、デザインモードでダブルクリックしVBAを開くと ①と②のコード画面が表示されます。この後の設定が上手く出来なくて・・・・AボタンとBボタン使い分けしたいです。
説明が下手くそですみません。宜しくお願い致します。