質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

4266閲覧

WORKDAY関数を用いたExcel VBA作成でエラーにより実行ができない。

ocome85

総合スコア33

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/02/06 02:05

前提・実現したいこと

ExcelVBA についてWorkDay 関数を使用して 
B列(2019/2/6) の祝日などを除いた(2/5を除いた) 2日営業日前の
(-2) 値 2019/02/01 を出力されるようにしたい。

Excel Sheet3 のデータ
A B C D
2019/2/6 -2 2019/2/5

発生している問題・エラーメッセージ

400

該当のソースコード

Sub test1() Set ws01 = Sheets("Sheet3") ws01.Range("A1").Value = Application.Run("ATPVBAEN.XLA!WorkDay", ws01.Range("B1").Value, ws01.Range("C1").Value, ws01.Range("D1").Value) End Sub Sub test2() Set ws01 = Sheets("Sheet3") For i = 1 To ws01.Range("G65535").End(xlUp).Row ws01.Range("B" & i).Value = Application.Run("ATPVBAEN.XLA!WorkDay", ws01.Range("A" & i).Value, ws01.Range("D1").Value, ws01.Range("K1:K100").Value)__ Next i End Sub

試したこと

元々列を対象として作成したかった為、test2を作りましたが動かず、
1行を対象としてtest1を作り直しましたがこれも動きませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

WORKDAY関数を使う目的で、分析ツールATPVBAEN.XLAを指定しているのだと思います。

Excel2007以降ならば、WORKDAYは標準関数になっているので、別セルに結果を入れるだけならば、saziさんが回答されているように、式だけでいいように思います。

EXCEL

1A1=WORKDAY(B1,C$1,D1)

それでもVBAでやろうという場合は、WorkSheetFunctionを使えば、セル関数をVBAから使用できます。

VBA

1ws01.Range("A1").Value = WorksheetFunction.WorkDay( _ 2 ws01.Range("B1").Value, ws01.Range("C1").Value, ws01.Range("D1").Value)

Excel2003以前の場合、WORKDAY関数は標準ではなかったので、アドインを使わざるを得ませんが、それでもVBAにする必要はないように思います。

エラーとして400とだけ書かれているのは、こういうことでしょうか。
Excelでマクロを実行すると「400」とエラーが出る(Excel 2013)
Excelで400というエラー

投稿2019/02/06 12:47

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ocome85

2019/02/06 13:05

追加で情報をありがとうございます。 関数ですと上から記入した場合消えてしまうのを嫌ってこのような質問をしてしまいました。 VBAでの方法も教えてくださり有難うございます。 使わさせていただきます。
guest

0

ATPVBAEN.XLAに関するものは使用したことがありませんが、使用しなくても式だけでできると思います。
以下などを参考にされてはどうでしょうか。
WORKDAY関数で土日と祭日を除外して期日を求める
開始日から指定した営業日後の日付を求めるWORKDAY関数

投稿2019/02/06 02:25

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ocome85

2019/02/06 13:01

参考にしたホームページがかなり昔の物だったようです。 今はセルに直接書くのが普通なんですね。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問