[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロの起動条件に』(ひー)
いつもお世話になっております
マクロの起動条件に毎週◯曜日に起動するとかいうのはできますでしょうか
< 使用 Excel:Excel2010、使用 OS:Windows7 >
こんなページがありました。
http://www.siminpc-kitakyushu.com/index.php?QBlog-20141029-1
(SoulMan) 2019/06/14(金) 21:46
すみません。寝てました(^^; Option Explicit Private Sub Workbook_Open() If Weekday(Date) = 1 Then MsgBox Format(Weekday(Date), "aaaa") Else MsgBox Format(Weekday(Date), "aaaa") End If End Sub みたいな???? (SoulMan) 2019/06/14(金) 22:49
MsgBox Format(Weekday(Date), "aaaa") の部分に 動作を書けばよろしいでしょうか (ひー) 2019/06/14(金) 22:53
それでもいいですし、、Call(私は、Callという書き方をしませんが(^^;)
なんてゆうのでしょうか???コードを呼ぶ??難しいね。サブルーチンを書く、、とかでしょうか?? (SoulMan) 2019/06/14(金) 22:59
>曜日は決まって
難しく考えずに、とりあえずマクロを実行してから、その中で曜日によって分岐すればいいんじゃないですか?
http://officetanaka.net/excel/vba/function/WeekDay.htm
Private Sub Workbook_Open() Select Case Weekday(Date) Case vbSunday MsgBox "日曜日です" Case vbMonday MsgBox "月曜日です" Case vbTuesday MsgBox "火曜日です" Case vbWednesday MsgBox "水曜日です" Case vbThursday MsgBox "木曜日です" Case vbFriday MsgBox "金曜日です" Case vbSaturday MsgBox "土曜日です" End Select End Sub
(もこな2) 2019/06/15(土) 07:57
たとえば、管理用のシートのA1セルにでも、無条件で当日の日付を出力するようにしておき、ブックを開いたときに、そのセルをチェックして、当日の日付が入っていたら処理をやめるとか…
(もこな2) 2019/06/17(月) 18:47
(1)ブックを開いたときに、管理用のシートのA1セルをみて、今日の日付か判定 (2)↑が真なら、処理中止 (3)やりたい処理 (4)管理用のシートのA1セルに、今日の日付を書き込む
わからない場合でも、自分なりに↑の流れで作ってみてコード見せてください。
(もこな2) 2019/06/17(月) 22:15
(隠居じーさん) 2019/06/19(水) 19:25
方法は色々あると思いますが、、例えば、、↓こんな感じ、、、でどうでしょう??? For Each ws In Worksheets If ws.Name = "特定" Then MsgBox ws.Name & " です。" '特定と表示される。。。はず?? Else MsgBox ws.Name & " です。" '特定ではないシート名が表示される。。。はず?? End If Next (SoulMan) 2019/06/19(水) 20:49
ちなみに過去ログを見てみると、すでにシートとセルを指定して値を取得する方法は教わっているようにおもいます。
(もこな2) 2019/06/19(水) 20:51
管理用のシートのA1セルをみて、今日の日付か判定
↑は、過去ログを読み直したり、隠居じーさんさんのヒントで考えてみて解ったのでしょうか?
解らない場合は、一旦やりたいことは忘れて「アクティブシートのA1セルの値を、メッセージボックスで表示するマクロ」を作って見せてください。
なお、方法云々は理解するつもりがなくて、完成品のコードが欲しいだけなら、そのように言ってもらったほうが、お互いの気持ちがすれ違わなくてよいとおもいます。
(もこな2) 2019/06/20(木) 08:58
MsgBox " 今日すでに開いてます。" Else MsgBox " 今日はじめて開きます。" End Sub ですがTODAYのところで変数が定義されてませんと出ます
(ひー) 2019/06/20(木) 21:06
MsgBox " 今日すでに開いてます。" Else MsgBox " 今日はじめて開きます。" End If End Sub
で解決しました
(ひー) 2019/06/20(木) 21:14
Private Sub Workbook_Open() If Worksheets("管理用").Range("A1").Value <> Date Then
Select Case Weekday(Date) Case vbSunday MsgBox "日曜日です" Case vbMonday MsgBox "月曜日です" Case vbTuesday MsgBox "火曜日です" Case vbWednesday MsgBox "水曜日です" Case vbThursday MsgBox "木曜日です" Case vbFriday MsgBox "金曜日です" Case vbSaturday MsgBox "土曜日です" End Select
Worksheets("管理用").Range("A1").Value = Date End If
End Sub
なお、管理用シートは不用意に触られないように非表示にしておくとよさそうです。
(もこな2) 2019/06/21(金) 06:22
一旦、丸ごと標準モジュールの適当なプロシージャにコピーして、ステップ実行をして研究してみてください。
試さずに全部聞かれても対応できかねます。
結局なにがやりたいのか教えて(示して)もらってませんが、「やりたいこと(仮)」として1日のうち【初めて開いたときだけ】○曜日ですと表示する。
ということで話を進めているつもりです。
(もこな2) 2019/06/21(金) 18:40
If Worksheets("管理用").Range("A1").Value = (Date) Then を If Worksheets("管理用").Range("A1").Value <> Date Then
にしたところ同日2回目以降メッセージボックスは表示されなくなりました ありがとうございます また連絡が遅くなりすいませんでした 今後とも宜しくお願いします
(ひー) 2019/07/05(金) 17:14
>同日2回目以降メッセージボックスは表示されなくなりました
【一旦、丸ごと標準モジュールの適当なプロシージャにコピーして、ステップ実行をして研究してみてください。】と言ったはずですが?
(もし、言うとおりにステップ実行されているなら、「管理用シートのA1セルが同日の日付じゃない場合だけ、Select Caseに進むことが理解できました。」とか言ってほしいところです)
>今後とも宜しくお願いします
他のトピックで興味があればコメントするかもしれませんが、こちらのトピックに関してはとりあえず解決したらしいですし、疲れたので追加で聞きたいことがあったとしても私は降ります。
(もこな2) 2019/07/05(金) 18:25
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.