• ベストアンサー

EXCEL VBA WEEKDAY関数

AKARI0418の回答

  • ベストアンサー
  • AKARI0418
  • ベストアンサー率67% (112/166)
回答No.3

DateSerial関数を使えばよいと思います。 Sub test() Dim y as integer Dim m as integer Dim d as integer y = 2009 m = 1 d = 21 MsgBox (Weekday(DateSerial(y,m,d))) End Sub

関連するQ&A

  • VBAで関数を使うには?

    こんな感じだったとします。   A1      B1 2002/9/2 2002/9/3 2002/9/4 2002/9/5   : このB1にそれぞれの曜日を表示させるVBAを以下のようにしました。 Sub youbi() Dim i As Integer For i = 3 To 10 Cells(i, 3).Value = Weekday(Cells(i, 2), "aaa") Next End Sub もちろんエラーでした。 (メッセージは「型が一致しません」です。) そこで以下のように変更しました。 Sub youbi() Dim i As Integer For i = 3 To 10 Cells(i, 3).Value = "=text(Weekday(b3), ""aaa"")" Next End Sub するときちんと曜日が表示されたのですが、もちろん全部B3のセルの日付の曜日です。 ここを変数にするにはどうしたらいいのでしょうか? とっても簡単なことのように思えますが、意外とハマってしまって抜け出せません。 よろしくお願いします。

  • 関数の引数

    こんにちわ。 ご存知の方、ご教授してもらえないでしょうか? VB.net2005を使っているのですが 関数の引数に変数をセットして、別関数で 引数に対してデータをセットすることは可能でしょうか? C言語でいうところのポインタを引数に渡し ポインタアドレスに書き込むような処理はVB.netでは 可能なんでしょうか? 下記のような事は試したのですが、うまく出来ませんでした(。。; public sub test1() dim mojiretu as string test2( mojiretu ) msgbox(mojiretu) end sub public sub test2( str as string) str = "文字列" end sub

  • グローバル変数などについて

    Option Explicit Dim str1 As String '・・・(1) Sub テスト() Dim str2 As String '・・・(2) str1 = "テスト1" str2 = "テスト2" MsgBox str1 MsgBox str2 End Sub (1)はグローバル変数と言うとの事ですが (2)は何変数と言うのでしょうか? ローカル変数ですか? また、(1)がdimではなく、 Public str1 As String となった場合でも、 プロシージャーの外にあれば、グローバル変数と言うのでしょうか?

  • vba関数 変数の中に該当の文字がいくつあるか

    vba関数 変数の中に該当の文字がいくつあるかを取得するには? Sub Sample() Dim moji As String moji = "aiuuueou" MsgBox "uは4つです" End Sub こんな感じで、moji という変数の中にuはいくつあるかを取得する方法はありますか?

  • excelvbaのweekday関数の比較

    下記のようなプログラムを書きましたが、 weekday関数の戻り値との比較ができません。 お分かりになる方、ご教授お願いします。 フォームには、 コンボボックス "曜日" コマンドボタン "比較" があるとします。 Private Sub UserForm_Initialize() 'コンボボックスのプロパティ設定 With 曜日 .Style = fmStyleDropDownList .ColumnCount = 2 .ColumnWidths = "0;30" .TextColumn = 2 .BoundColumn = 1 .ListWidth = 30 End With '曜日データの設定 With 曜日 For i = 1 To 7 .AddItem i '戻り値は数値 .List(i - 1, 1) = WeekdayName(i, True) '表示は文字列 Next i End With End Sub Private Sub 比較_Click() Dim 開始日付 As Date 開始日付 = DateSerial(2008, 4, 1) Do Until Weekday(開始日付) = 曜日 開始日付 = 開始日付 + 1 Loop End Sub 上記の処理で、開始日付を選択された曜日までインクリメントさせたいのですが、 Doの比較が一致せず、オーバーフローになってしまいます。 いろいろ調べましたが、何がいけないのかさっぱりわかりません。 ちなみに、Dateserialの中の数値も、 コンボボックスで選択するように作成しています。 よろしくお願いいたします。

  • 【1】と【2】のvbaは同じ意味ですか?

    【1】 Option Explicit Sub test1() Call test2("aaa") End Sub Sub test2(MyStr As String) MsgBox MyStr End Sub 【2】 Option Explicit Dim MyStr As String Sub test1() MyStr = "aaa" Call test2 End Sub Sub test2() MsgBox MyStr End Sub 結果は同じですが、中身が違います。 今後コードを作っていく上で どちらの方式の方が良いのでしょうか?

  • VBAでワイルドカードを使った文字列検索

    初めて投稿いたします。 環境は、WinXP Access2000 下記のVBAモジュールで、文字列検索がヒットしません。 数字の比較でヒットするのはナゼでしょうか? ちなみに、変数に導入したのは、全角半角どちらも入れてみました。 この疑問・・・どなたか解決お願いします。 Sub TEST() Dim AAA As String Dim BBB As String Dim YYY As String AAA = "0" BBB = "2" YYY = AAA & BBB Select Case YYY Case "0*" MsgBox "ココを通り過ぎないで!" Case "15" MsgBox "やったね" Case Is > 0 MsgBox "なぜかココでヒットします??" End Select End Sub

  • VBAで

    VBAで Sub test() '日付から曜日を取得 WEEKDAY(A2) Dim i As Integer For i = 3 To 20 Cells(i, 2) = Weekday(Cells(i, 1)) Next End Sub 横のセルを参照する場合は、上記のようになると思いますが、上のセルを参照するにはどのようにすればいいでしょうか? 例えばA1~T1セルを参照して、A2~T2に反映させると言った具合です。よろしくお願いします。

  • エクセルVBAでの変数

    いつもお世話になります。 今回の『壁』は”変数”です。 変数の中に更に変数を持たせることはできますか? 何をしたいかと言いますと… dim mon1 as string dim mon2 as string dim mon3 as string dim mon4 as string dim mon5 as string dim tue1 as string dim tue2 as string …というように月曜から日曜までの頭3文字プラス1~5の組み合わせの変数を作りたいのですが、 この調子で作っていくと35コになってしまいます。 そこで、曜日の頭3文字より後ろは決まって1~5のため、 dim i as integer for i = 1 to 5 next i …と組み合わせられないかと思ったのです。 どなたか知恵をお貸しください。 よろしくお願いします。

  • VBA 関数(Function) カッコの後のデータ型は必要?

    Function あ() あ = "あああ" End Function Sub test3() MsgBox あ End Sub と、 Function あ() As String あ = "あああ" End Function Sub test3() MsgBox あ End Sub は同じ動作をするのですがやはり「As String」をつけたほうがいいのですか? ウォッチウインドウで確認すると 「As String」がないほうは「Variant/ String」型ですが あるほうは「String」型のみです。