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

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

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

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

Q&A

解決済

1回答

5503閲覧

VBA 型が一致しない

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

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

0グッド

0クリップ

投稿2017/05/03 02:41

月末と月初を求める関数を作成しているのですが、
この関数(プロジャー)を呼び出すと、「型が一致しない」というメッセージが表示されてしまいます。cmbMonth.Valueになにも値が入っていないようです。

どなたかご教授お願い致します。

以下コード抜粋↓

vba

1Option Explicit 2 3Public StartDay As Date 4Public EndDay As Date 5 6Public Sub SettingList() 7 8If cmbYear.Value = "" Then Exit Sub 9If cmbMonth.Value = "" Then Exit Sub 10StartDay = DateSerial(cmbYear.Value, cmbMonth.Value, 1) 'ここで型が一致しないと表示されてしまう。 11EndDay = DateSerial(cmbYear.Value, cmbMonth.Value + 1, 1) - 1 12

以下年月の設定を行っているコンボボックスの設定

vba

1Private Sub UserForm_Initialize() 2 3 Dim i As Integer 4 With cmbYear 5 Dim FromYear As Integer 6 Dim ToYear As Integer 7 8 FromYear = Year(Date) - 2 9 ToYear = Year(Date) 10 11 12 For i = FromYear To ToYear 13 .AddItem i 14 Next 15 .Value = ToYear 16 17 End With 18 19 With cmbMonth 20 For i = 1 To 12 21 .AddItem i 22 Next 23 .Value = 1 24 End With 25 26```![イメージ説明](6a3172cde9af0465eb5a16897708403e.png)

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

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

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

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

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

guest

回答1

0

ベストアンサー

DateSerialの引数は数値型ですが、コンボボックスのValueプロパティが文字列型のためと思われます。
数値型に明示的に変換してやればよいのではないでしょうか。

StartDay = DateSerial(Val(cmbYear.Value), Val(cmbMonth.Value), 1) EndDay = DateSerial(Val(cmbYear.Value), Val(cmbMonth.Value) + 1, 1) - 1

DateSerial 関数
Val 関数

投稿2017/05/03 04:35

編集2017/05/03 04:47
SVC34

総合スコア1149

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

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

退会済みユーザー

退会済みユーザー

2017/05/03 04:45

解答有難うございます。1点質問なのですが、 Valというものを付けると数値型になるのでしょうか?
SVC34

2017/05/03 04:48

はい。Valは文字列型を数値型に型変換する関数です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問