※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロの実行場所(セル)の指定(初心者))
エクセルのマクロの実行場所(セル)の指定(初心者)
このQ&Aのポイント
エクセルのマクロを使用して、特定の条件に基づいてセルの書式を設定したい場合、相対参照を使用して指定セルに設定する方法について教えてください。
マクロの記録機能を使用して、特定の条件に基づいてセルの書式を設定するマクロを作成しましたが、セルの指定部分を相対参照にする方法がわかりません。
選択しているセルに設定するためには、マクロのコードの指定セル部分を修正する必要がありますが、具体的にどのように修正すれば良いのでしょうか?
エクセルのマクロの実行場所(セル)の指定(初心者)
こんにちは。いつもお世話になっております。
ここで色々教わりながら、本も参考に色々試行錯誤しながらあがいている超初心者です。
下記のマクロを個人ブックに保管して、複数あるブックのセルに書式設定をしようとしています。
超初心者故マクロのコードが書けないので、マクロの記録で下記の動作をマクロにしようとしました。
文書Noと入力した日付の整合性をチェックし、外れた場合(例:2017年4月なら、Noは1704からら始まらないと)青斜体にしたい。
一応正常に動くことは確認したのですが、この書式設定を実行するセルがブックによってちがっています。
下記の例は入力日をA1に入れることにしていますが、実際には列も行も違っています。(さらにはこれで設定した書式を、書式のコピーで下に必要な行数分コピーすることになります)
「相対参照で記録」とか、できたマクロのコードの指定セルの$を取ってみるとか思いつくことは試行してみたのですが、うまく行きません。
選択しているセルに設定する為には、何処をどう修正すれば良いのでしょう?
対象ブックが500、使用頻度が高く当面書式設定したいブックが200近くあるので何とかマクロで対処したく宜しくお願いします。
Sub 文書Noと日付()
' Keyboard Shortcut: Ctrl+d
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=LEFT($A$1,4)<>TEXT(TODAY(),""yymm"")"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = False
.Italic = True
.Color = -65536
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub
お礼
今、作業を開始する前に少し練習を兼ね検証してみたのですが、上記の書式のコピペは不要だと分かりました! これで作業を開始させていただきます。 助かりました。 また宜しくお願い致します。
補足
度々のご回答ありがとうございます。 お手数をお掛けします。 朝一で再度コードをコピペして確認したところ、意図したとおりに動くことを確認しました。 前回もコードはコピペしたのですが、sが抜けたのでしょうか? 非常に助かりました。 先ずはこれで作業を進めようと思います。 実は、この続きの作業も有るのですが、当方の実力では折角教えて頂いても持ち腐れになる可能性もあるので、出来そうなこから1つずつ動作確認しながら作業するつもりで質問させて頂きました。 マクロは超が付く初心者なので回答者様からの指摘を確認しながら、1つずつです。 入門書も購入したのですが、実務的にはなかなかな追いつかずなもので、ついここで質問させていただいています。 このマクロの続きの作業は、このセルの書式設定を下まで書式コピーすることなのですが。 下に引っ張る範囲がシート毎に違っているので、まずは開始セルにマクロで書式設定して、後は「書式コピー」で何とか。 恐らくRangeで指定すれば一発で、と思いますが、今度は当該の書式設定の仕方が分からず、まずは確実に任意の1つのセルに設定して、後は書式コピーで作業することを考えました。 次に選択した範囲への「書式のコピー」をマクロにする手も有りかと思いますが、どうせ2度手間なら、書式のコピペで対応した方が当方には向いているかと、言う段階です。