Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


389 / 13645 ツリー ←次へ | 前へ→

【80651】WORKDAY関数をVBAで使用したい みも 19/3/27(水) 18:28 質問[未読]
【80652】Re:WORKDAY関数をVBAで使用したい マナ 19/3/27(水) 18:50 発言[未読]
【80653】Re:WORKDAY関数をVBAで使用したい みも 19/3/28(木) 12:09 質問[未読]
【80654】Re:WORKDAY関数をVBAで使用したい マナ 19/3/28(木) 18:13 発言[未読]
【80659】Re:WORKDAY関数をVBAで使用したい みも 19/3/29(金) 19:24 発言[未読]
【80662】Re:WORKDAY関数をVBAで使用したい マナ 19/3/29(金) 20:07 発言[未読]
【80663】Re:WORKDAY関数をVBAで使用したい みも 19/3/29(金) 21:15 発言[未読]
【80673】Re:WORKDAY関数をVBAで使用したい みも 19/4/1(月) 18:23 お礼[未読]

【80651】WORKDAY関数をVBAで使用したい
質問  みも  - 19/3/27(水) 18:28 -

引用なし
パスワード
   WORKDAY関数をVBAで使用したいのですが、エラーが出てしまいます。

エラー内容: “Worksheetfunction クラスの workdayプロパティを取得できません。”

やりたい事: 入力してある日付が土日祝日であった場合に、一番近い平日の数字を別のセルに入力する(前倒し)

手順シートには予め祝日を記載しています(S列)

コード:

Dim TEJYUN As Worksheet

Set TEJYUN = Worksheets("手順書")

Dim DATA As Worksheet

Set DATA = Worksheets("データ")


DATA.Cells(1, 11) = WorksheetFunction.WorkDay(DATA.Cells(1, 10)+1, -1, TEJYUN.Range("S1:S100"))

初心者ですので、根本的なところが間違っているかもしれませんが、ご教授頂けますと幸いです。

よろしくお願いいたします。

【80652】Re:WORKDAY関数をVBAで使用したい
発言  マナ  - 19/3/27(水) 18:50 -

引用なし
パスワード
   ▼みも さん:

>WORKDAY関数をVBAで使用したいのですが、エラーが出てしまいます。

J1セルに日付が入力されているか確認するコードを追加してはどうでしょうか。

【80653】Re:WORKDAY関数をVBAで使用したい
質問  みも  - 19/3/28(木) 12:09 -

引用なし
パスワード
   ▼マナ さん:

>
>>WORKDAY関数をVBAで使用したいのですが、エラーが出てしまいます。
>
>J1セルに日付が入力されているか確認するコードを追加してはどうでしょうか。


ご回答誠にありがとうございます。

下記コードをWorksheetFunction.WorkDayの前に追加してみましたが、

“日付になっております” と表示されます。

IfIsDate(DATA.Cells(1,10).Value)=FalseThen

DATA.Cells(1,10).Value=CDate(DATA.Cells(1,10))

Else

MsgBox"日付になっております。"

EndIf

お手数ですがご確認よろしくお願い致します。

【80654】Re:WORKDAY関数をVBAで使用したい
発言  マナ  - 19/3/28(木) 18:13 -

引用なし
パスワード
   ▼みも さん:

>“日付になっております” と表示されます。

セル書式が文字列になっていませんか

【80659】Re:WORKDAY関数をVBAで使用したい
発言  みも  - 19/3/29(金) 19:24 -

引用なし
パスワード
   ▼マナ さん:

>>“日付になっております” と表示されます。
>
>セル書式が文字列になっていませんか

ご回答ありがとうございます。

文字列になっております。
ただ、文字列ではなく、日付に変更してもエラーはでます。

後出しで申し訳ありませんが、このコードの前に違うコードを書いております。

内容は、元データの○月生産という項目の数字だけを読み取り、その数字−1の数値&”/20”を横のセルに入力するというものです。
このマクロを実行すると、6月生産の場合、セルは文字列の2019/5/20という結果になります。

つまり生産月の前月○日に手配する為の納期をだしております。

この納期の出し方が悪いでしょうか。
この入力を”生産月の数字−1の数値&”/20””以外の書き方に変えた方がいいでしょうか。

ファイルのあるパソコンからはすでに離れており、データを持ち出していない為、実際のコードが入力できなくて申し訳ありません。

よろしくお願い致します。

【80662】Re:WORKDAY関数をVBAで使用したい
発言  マナ  - 19/3/29(金) 20:07 -

引用なし
パスワード
   ▼みも さん:

>このマクロを実行すると、6月生産の場合、セルは文字列の2019/5/20という結果になります。

エラーは文字列だからですね。

IsDateで調べてTrueなら、
CDateまたはDateValueを使うとよいです。
そうすれば、エラーはでないと思います。

J1の書式を標準にしておけばよいだけかもしれませんが…

【80663】Re:WORKDAY関数をVBAで使用したい
発言  みも  - 19/3/29(金) 21:15 -

引用なし
パスワード
   ▼マナ さん:
>エラーは文字列だからですね。
>
>IsDateで調べてTrueなら、
>CDateまたはDateValueを使うとよいです。
>そうすれば、エラーはでないと思います。
>
>J1の書式を標準にしておけばよいだけかもしれませんが…

ご回答ありがとうございます。

アドバイス頂いた点を踏まえて、実行してみます!
今はデータがないので、月曜日に実験してまたご報告、ご相談させて頂きます。

よろしくお願い致します。

【80673】Re:WORKDAY関数をVBAで使用したい
お礼  みも  - 19/4/1(月) 18:23 -

引用なし
パスワード
   ▼マナ さん:

>J1の書式を標準にしておけばよいだけかもしれませんが…

お世話になっております。

本日実験した所、workday関数の前にnumberformatlocalで標準に変換したら全てうまく動作しました。

的確なアドバイスを頂き、本当にありがとうございます。

今後とも質問させて頂くことがあるかと思いますが、お時間ありましたら何卒宜しくお願い致します。

389 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free