1 名前:デフォルトの名無しさん mailto:sage [2008/08/25(月) 23:16:33 ] ExcelのVBAに関する質問スレです 前スレ pc11.2ch.net/test/read.cgi/tech/1212587819/ ★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。 ★2 ExcelのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Application』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
136 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:46:46 ] ここの奴らほとんど、ろくな知識も無いのに 知ったか振っててうざいんだもん これぐらい言わせなよ
137 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:51:18 ] うわぁ・・・低脳すぎて煽るきにもならない
138 名前:128 mailto:sage [2008/09/07(日) 15:52:01 ] あと別におまえらがエスパーである必要はねーけど 言われた事から、相手がなぜそうしたいのか、ではどういう方法が適切かくらい想像しろよ、と思うね おまえら自分の知ってることが唯一の回答であるようにこじつけてるだけだろ。 そういうのをバカの一つ覚えって言うんだよ。 でも回答ありがとう。じゃね。
139 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:52:32 ] っていうかxlsファイルを開くのとExcelのGUIを開くのを同じことだと思っている低脳っているんだね
140 名前:>137 mailto:sage [2008/09/07(日) 15:53:30 ] じゃあ書くなよウスノロw
141 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:53:47 ] うわぁ・・・ひどい池沼ですね・・・
142 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:55:07 ] 日本語で質問できるようになったら書き込みしような。
143 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:56:22 ] 高卒とかFランは書き込みできないようなフィルタかけてくれよ
144 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 15:59:21 ] 盛り上がってますね
145 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:01:56 ] >>133 最低限1から5くらいまで説明しようぜ。 俺らお前のお母さんじゃないんだからよ。
146 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:02:48 ] というより、 出来ないことは出来ないと説明した上で代替案を示すなら ここまで荒れないと思うのだが。 条件に反することを回答するからこうなる
147 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:03:39 ] >>132 でできると思うぜ。
148 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:10:34 ] >>145 えっ? >128を1から5くらいの説明で理解できるのか? 最近のお母さんてスペック高いんだな!
149 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:11:33 ] OBJ.FileOpenは知ってたけどコードがごちゃごちゃするから嫌いなのよ。 他にもっとシンプルなやり方が無いのかな、って思っただけ。
150 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:12:30 ] >>147 非表示だけど、ファイル開いてるからNGだろ。 想像力のない俺からすれば、元の質問自体がNGだけどな。
151 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:13:04 ] 変な知ったかいいわけ始めたぞ
152 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:14:32 ] ファイル開かずにファイルを変更するなんて方法があったら俺が知りたいな
153 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:16:31 ] 128ってそんなに難しいか まさかとは思うがプログラム板なのにAccessのVBAを知らん奴がいるのか
154 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:20:31 ] 簡単だぞ。質問がヘタなだけ。で質問の答えに対して実装できるスキルもないだけ。
155 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:23:38 ] 要するに低脳というわけですね。分かります。
156 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:24:49 ] 盛り上がってますなあ
157 名前:128 [2008/09/07(日) 16:38:58 ] 結局お前らAccessVBAが理解できなかっただけ佳代w 低能エクセル厨乙w
158 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:49:47 ] スレタイ100回音読してみろ。 それから自分の質問と回答を100回音読しろ。
159 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 16:56:43 ] 下手な釣りだなあ。次の質問どうぞ。
160 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 18:49:05 ] >>128 が見えない
161 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 20:20:00 ] excel vba 極めたいのですけど お勧めの参考書はありますか?元制御系プログラマで プログラミングの基本は充分できています。 技術評論社のポケットリファレンスはどうですか?
162 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 20:25:06 ] 便乗質問・・・。 win32APIを勉強したいのですが、お勧めの本ってありますか? 使用目的はExcel VBAで呼び出す事です。
163 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 20:29:47 ] Excel VBAによるWin32 APIプログラミング入門 (単行本) ぐぐることも出来ないの?
164 名前:デフォルトの名無しさん mailto:sage [2008/09/07(日) 23:32:31 ] 質問者も回答者もバカが多いな
165 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 00:05:08 ] お前ほどじゃないがな
166 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 03:03:14 ] だな
167 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 03:08:05 ] 157 名前:128[] 投稿日:2008/09/07(日) 16:38:58 結局お前らAccessVBAが理解できなかっただけ佳代w 低能エクセル厨乙w こいつリアルでもこんな感じなんだろうな
168 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 07:45:44 ] >>162 マジレスするとWin32APIの為に本を買うのはもったいない。 MSDNとネット上のAPIサンプル集とかで十分。
169 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:00:04 ] detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1112704276 上のようなことの逆は可能ですか? 例えば、セルAに映画のタイトルが縦に並んでて、 セルBにはその映画の詳細が見れるHPアドレスが沢山並んでます。 セルBのそれぞれのアドレスを、セルAに一括でハイパーリンクさせる(埋め込む) 方法が知りたいです。 ご教授、宜しくお願い致します。
170 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 19:41:35 ] pc11.2ch.net/test/read.cgi/bsoft/1219830884/238
171 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:08:18 ] >>170 循環参照になってる
172 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:09:26 ] 笑!
173 名前:y mailto:sage [2008/09/08(月) 20:21:47 ] >>169 セルB1にあるアドレスを、セルA1にハイパーリンクとして埋め込むのは、 次のようにすればできます。 Sheet1.Hyperlinks.Add Anchor:=Cells(1, "a"), _ Address:=Range(1, "b"), _ TextToDisplay:=Cells(1, "a").Value (マクロの記録を使って、ハイパーリンクを埋め込む動作を記録してみれば簡単です) これをループで括って、「1」となっているところ(これは行番号にあたります)を 変えていけば、お好みの行数分操作できます。
174 名前:y mailto:sage [2008/09/08(月) 20:25:13 ] あ! すみません。 169はマルチポストだったんですね。 気づかずに答えてしまいました。 >>169 ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88 一度ここを読んでおいてください。
175 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:29:35 ] > Range(1, "b") ?
176 名前:y mailto:sage [2008/09/08(月) 20:29:41 ] さらに自分のレスの間違いに気づきました。 Address:=Range(1,"b") → Address:=Cells(1,"b")
177 名前:169 mailto:sage [2008/09/08(月) 21:03:00 ] >>173 マルチ悪かった。 ツール→マクロ→VBA→標準モジュールに保存した後、 マクロ実行してみたけどできません。 初心者なんでもう少し詳しく教えていただけませんか?
178 名前:169 mailto:sage [2008/09/08(月) 21:54:01 ] 1行だけできましたけど、 行数分操作ができません。 Cells(1, "a"), 1の部分の範囲指定はどうすればいいの?
179 名前:169 mailto:sage [2008/09/08(月) 21:55:21 ] できればセルを範囲指定して、マクロ実行で 一括で変更できると助かります
180 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:01:32 ] ググレ
181 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:27:39 ] >>180 いろいろ調べてもわからねぇよ 質問スレなんだから聞いてるんだろ。。意地悪しねぇで教えろよ。 その気がないなら返信するな
182 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:45:30 ] >>179 =>>169 =>>こないだの池沼 な
183 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:46:16 ] >>181 =>>179 =>>169 =>>こないだの池沼
184 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:16:26 ] モーグでも行けよ池沼
185 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:40:48 ] で、また169が暴れるのか?
186 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 23:43:52 ] >>181 =>>179 =>>169 =>>184 =>>こないだの池沼
187 名前:デフォルトの名無しさん [2008/09/09(火) 01:33:11 ] XMLファイルをVBAで扱いたいんですけど、そういった方面を勉強できるような書籍はないでしょうか。 「XML入門」みたいな本はたくさん見るんですけど、あれって具体的なコーディングについては記述が無いorごく少ないですよね。。。 あってもPHPとかばっかりだし。。。
188 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 08:48:08 ] 書籍があってもバカじゃどうしようも無い まともな頭があればVBAでCOM(XMLDOM)使ってXML扱うくらい、 ネットの情報だけで事足りる
189 名前:デフォルトの名無しさん [2008/09/09(火) 10:31:32 ] あるセルからあるセルまでソルバーを使うということをやりたいのですが、 ↓のを作ったのですが、出来ません。どうすればいいですか? SOLVERの参照設定はやりました。 Sub Macro1() Dim x As Integer For x = 1 To 5 Range("Cells(x, 3)").Select SolverOk SetCell:=Cells(x, 5), MaxMinVal:=3, ValueOf:="0", ByChange:=Cells(x, 2) SolverSolve Userfinish:=True Next x End Sub
190 名前:y mailto:sage [2008/09/09(火) 19:35:50 ] >>177 173の後半を、もう少し具体的に書きます。 まずループ用の変数rを宣言し、ここでは例として For 〜 Next間を5回繰り返すループを示しておきます。 Dim r as Long For r = 1 to 5 Sheet1.Hyperlinks.Add Anchor:=Cells(r, "a"), _ Address:=Cells(r, "b"), _ TextToDisplay:=Cells(r, "a").Value Next 繰り返しのたびに、rは1, 2, 3, 4, 5と変化していくので、 上のコードでは1〜5行目に対する操作が行われることになります。 初心者の方なら、「VBA デバッグ」などで検索してみて、この過程を 一つ一つ目で確認する方法を身につけると、上達が早くなります。 For r = Inputbox("開始行?") to InputBox("終了行?") とすれば、処理をしたい行の範囲を簡単に指定できますが、 もっと便利にしたければ、自分でも他の方法を色々調べてみてください。 質問する時は、どんなに間違っていてもいいので、とにかく何か自分なりに 調べて考えたコードを貼って、それに対するアドバイスを求めた方がいいですよ。 181のようなことを書くと、>>1 の★5にあるように、「また丸投げか」と 怒りを買ってしまいます。
191 名前:y mailto:sage [2008/09/09(火) 20:01:47 ] >>189 マクロの記録を使って、ソルバーでやりたい作業をマウスでやってみて、 どんなコードが記録されるか確かめてみてください。(>>1 ★5) 189のコードについては、 @単純な構文ミス Range("Cells(x, 3)").Select → Cells(x, 3).Select A目的セルをどこにしたいのか、可変セルをどこにしたいかが不明 です。特に、Aが分からないとアドバイスができません。
192 名前:y mailto:sage [2008/09/09(火) 20:03:56 ] >189 「>>1 ★6」でした。失礼しました。
193 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 20:44:23 ] >>190 ご親切にありがとうございました。 勉強になりました
194 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:41:34 ] >>191 すみません 目的のセルがCells(x, 5)で、可変セルがCells(x, 2)のつもりでした。 で、@のやつをやったら出来ました。 ありがとうございました。
195 名前:デフォルトの名無しさん [2008/09/09(火) 22:50:31 ] VBA初心者です 何か作ろうと思うのですが…自分では思いつかないので… 何か問題お願いします。
196 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 22:57:53 ] >>195 このスレを集計してyの貢献度を調査せよ。
197 名前:195 [2008/09/09(火) 23:04:59 ] >>196 ラジャ
198 名前:デフォルトの名無しさん [2008/09/09(火) 23:34:22 ] 式を教えてください。 A列には文章が入っています。 B列には文章に含まれる単語、C列にはコード番号が入っています。 それぞれ数百〜数千行になります。 A列にはB列の単語のいずれかが含まれる場合には、 単語に対応するC列のコードをD列に表示させたいのですが、 どのような式がよいでしょうか。 VLOOLUPやFINDなどを組み合わせてみても上手くいきません。 お手数ですが、どなたか至急お教え願えますでしょうか。
199 名前:デフォルトの名無しさん [2008/09/10(水) 00:31:40 ] 具体的なセルの中身教えろよ このスットコドッコイ
200 名前:デフォルトの名無しさん [2008/09/10(水) 07:26:43 ] A列…デフォルトの名無しさん、具体的なセルの中身教えろよ、このスットコドッコイ B列…デフォルト、セル、スットコドッコイ C列…E46194、H23t55、342421
201 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 07:44:07 ] ここはExcel VBAのスレです
202 名前:デフォルトの名無しさん [2008/09/11(木) 00:16:48 ] XPでExcel2003です c:\aaa 配下にある全てのファイルとサブフォルダを c:\bbb 配下に全てコピーする事は可能ですか? また、サンプルコード等ありましたらヒントを頂けると助かります 色々と探してはいるのですが、いまいちピンとこないので サンプルがあると助かるのですが、、、、 VBAはまだまだ初心者なので未熟者で恐縮です。
203 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 06:12:54 ] >>202 >>1 ★3 ★4
204 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:30:31 ] たまにmougヲチするんだけど、痛い回答者が多いのね。
205 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:59:47 ] シートにコンボボックスを貼り付けて AddItemで追加した後にシートを Xボタンを押して閉じようとすると 変更を保存しますかと聞かれるんですが このチェックを外す方法ってあります? OSはXPでExcel2003です。
206 名前:y mailto:sage [2008/09/11(木) 20:15:03 ] >>198 文章中の、特定の単語の有無の判定なら、たぶんInStr関数で何とかなると思います。 調べてみて使えそうなら使ってください。 >199にもありますが、具体的なデータが分からないとアドバイスしずらいです...
207 名前:y mailto:sage [2008/09/11(木) 20:17:20 ] >>195 どんな業界で働いている方か分かりませんが、 実務に役立つ知識が増すようなテーマを選ぶと、 何かと都合がいいのではないでしょうか。 為替、株式市況、地価、青果水産物市況など、 ネット上にはたくさんの生データが公開されています。 それらを自動的に取得し、テーマに沿って演算し、 レポートを出力するマクロを組むだけでも、 相当勉強になると思います。 やるのであれば、日々刻々と変化する数字の方が面白いです。 例えばある人は、東京に10数箇所ある中央卸売市場の毎日の市況データを 取得し、各市場の卸売価格差をグラフに出力するマクロを作っていました。 仲買業者なら、どこの市場で買い付けをすれば一番安いか、 逆に生産者なら、どこの市場に出荷すれば一番高いか、 一目で分かるというものです。ちなみに彼は商社に勤めていますが、 似たようなことをしている人は結構いるでしょう。 Excelは基本的にデータ処理の道具なので、何を試すにしても、 まずは題材になるデータを見つけてこなければなりません。 ならば自分が、分析対象として最も興味を覚えるデータを選ぶのがベターです。 その上で、自分のスキルに応じた試行錯誤をしてみればいいと思います。 仮に「VBA解説書に載っている多機能な家計簿を作るんだ」と決意したとして、 自分で小遣い帳をつけているほどの人ならともかく、付属CDに入っている 仮想データを使って作っていくようなやり方は、モチベーションが湧きづらい ように感じます。
208 名前:デフォルトの名無しさん [2008/09/11(木) 22:02:38 ] あれ今日y絶好調だな
209 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:07:26 ] >>206 ×しずらい ○しづらい ◎しにくい
210 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 01:38:18 ] >>195 WindowsVBAつくってよ
211 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 03:36:31 ] yには、人生相談にすら答えてくれそうな勢いを感じる
212 名前:y mailto:sage [2008/09/12(金) 20:05:30 ] >>205 「シートを Xボタンを押して閉じようとすると」とありますが、 シートに×ボタンはないので、たぶん「ブックを」のつもりでしょうか。 「変更を保存しますか」というメッセージは、ブックを保存した直後の状態であれば 表示されません。この状態は、WorkbookオブジェクトのSavedプロパティをTrueに することで、強制的に作り出すことができます。 ブックが閉じられる直前に、その操作が自動で行われるようするためには、 ThisWorkbookオブジェクトのコード領域にBeforeCloseイベントを挿入し、 その中でSavedプロパティを操作します。 Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Saved = True End Sub
213 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:44:06 ] うざいな
214 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:51:26 ] >>213 お前がな
215 名前:205 mailto:sage [2008/09/12(金) 22:35:11 ] なるほど。Savedプロパティですか。 ありがとうございました。
216 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 00:10:19 ] 確かにうざいわ
217 名前:y mailto:sage [2008/09/13(土) 02:54:40 ] ・・・
218 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 03:49:12 ] 何コイツ
219 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 06:49:48 ] 煽りなんか気にすんな。
220 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 07:14:09 ] 未だに169が粘着してる
221 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 08:56:37 ] >>217 は、マジでうざいなw
222 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 09:06:33 ] まぁ、2chではあまり見ないキャラであることは確かだな。 嫌ならNGしとけ。
223 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 09:25:58 ] 凄い粘着だな。。。おい。
224 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 10:01:34 ] >>218-223 をNG指定した
225 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 11:55:22 ] マクロなんですけど、行挿入のマクロを作りたいんです。 だけど、挿入する行をセルの値から指定したい場合はどうすればよいですか? 例 B2 = 3 3行目と4行目の間に行挿入をするようB2をつかってさせる。
226 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 13:16:55 ] Dim i As Integer i = Range("B2") Rows(i).Insert
227 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 13:18:30 ] これだけでもいけるな Rows(Range("B2")).Insert
228 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 14:07:04 ] >>226-227 助かります、ありがとうございました。
229 名前:y mailto:sage [2008/09/13(土) 16:13:47 ] ・・・
230 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 22:03:03 ] yそろそろコテにしたら?なりすましが出るくらい名が知れてきたんだからさ
231 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 22:16:44 ] yがコテじゃなかったら何だと言うのだ
232 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 22:33:41 ] トリップつけたら?ってことじゃね?
233 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 23:38:26 ] いい加減、yの話題やめろよ
234 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 00:06:42 ] うざすぎ
235 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 03:08:08 ] エクセルのシートに画像をドラッグした時に、指定場所に指定のサイズに変換したいのですができますか? また、工事管理を行っていて、工期の数日前になると警告文が出るようにできるのでしょうか?
236 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 05:20:37 ] > エクセルのシートに画像をドラッグした時に、指定場所に指定のサイズに変換したいのですができますか? 「シートに画像をドラッグした時に」というイベントが用意されてないから、 「ドラッグした」ら自動で処理するってのは無理 「シートに画像をドラッグしてからボタンを押したら」なら可能だが > また、工事管理を行っていて、工期の数日前になると警告文が出るようにできるのでしょうか? 可能だがExcelでやるべきことじゃないな Excelでやるってことは、Excelとその警告マクロを作ったブックを立ち上げてないと警告文出ないわけだし やるとすれば、「n日前」ではなく、「n日前以降、最初にExcelを立ち上げたとき」という条件になるかな