Excel VBA質問箱 IV

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

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


19886 / 76732 ←次へ | 前へ→

【62272】Re:VBSからマクロの呼び出し
発言  kanabun  - 09/7/6(月) 11:16 -

引用なし
パスワード
   ▼さくら さん:
こんにちは。

>以下で望むとおりの結果が得られたのですが、VBSから呼び出して

VBSから呼び出す前に、そのVBAの構文、ちょっとおかしいですよ。
まず、それを直しておきましょう。

(1)とくに必要がない限り、変数はプロシージャ内に宣言する
 というのは↓の部分です。
>Public ws0 As String
>Public ws1, ws2 As Worksheet
>Public i, k As Integer

 5つの変数が、モジュールレベル(広域)変数として宣言してありますが、
 Sub before()
 というプロシージャ(ひとつのマクロのこと)の中でしか使わないのであれば
 それらの変数はプロシージャ内に宣言して使ったほうが管理しやすい。

(2)変数のデータ型は 変数ごとに宣言すること
>  ws1, ws2 As Worksheet
>  i, k As Integer
というのは、

   ws1 As Variant, ws2 As Worksheet
   i As Variant, k As Integer

というのと同じこと。
上のWorkbook変数は Sub before() プロシージャの最初に
  Dim ws1 As Worksheet, ws2 As Worksheet
と宣言してください。

(3)下の整数型ワーク変数は シートの行を格納する予定があるので、Integer
  でなく、Long型で宣言してください。
  Dim i As Long, k As Long

(4)↓は 
>ws0 = Year(Date) & Right("0" & Month(Date), 2)
    ↓
ws0 = Format$(Date, "yyyyMM")
とも書けますね?
 (どちらでも構いませんが)

(5)WorksheetFunction.And 構文を VB(A) の And構文 に直してください
>  If Application.WorksheetFunction.And(ws1.Cells(i, 1) > ws2.Cells(2, 4), ws1.Cells(i, 1) < ws2.Cells(3, 4)) = True Then
>    MsgBox ws1.Cells(i, 1).Value
>  End If

まずは、こんなところで、 VBAでの構文チェックを実行してください。

168 hits

【62268】VBSからマクロの呼び出し さくら 09/7/6(月) 10:21 質問
【62272】Re:VBSからマクロの呼び出し kanabun 09/7/6(月) 11:16 発言
【62274】Re:VBSからマクロの呼び出し さくら 09/7/6(月) 11:43 発言
【62276】Re:VBSからマクロの呼び出し kanabun 09/7/6(月) 12:03 発言
【62278】Re:VBSからマクロの呼び出し さくら 09/7/6(月) 13:08 発言
【62280】Re:VBSからマクロの呼び出し kanabun 09/7/6(月) 14:04 発言
【62281】Re:VBSからマクロの呼び出し さくら 09/7/6(月) 14:30 発言
【62282】Re:VBSからマクロの呼び出し kanabun 09/7/6(月) 15:06 発言
【62284】Re:VBSからマクロの呼び出し さくら 09/7/6(月) 15:28 発言
【62285】Re:VBSからマクロの呼び出し kanabun 09/7/6(月) 15:55 発言
【62287】Re:VBSからマクロの呼び出し さくら 09/7/6(月) 16:35 発言
【62286】Re:VBSからマクロの呼び出し kanabun 09/7/6(月) 16:25 発言
【62288】Re:VBSからマクロの呼び出し さくら 09/7/6(月) 16:54 お礼
【62289】Re:VBSからマクロの呼び出し kanabun 09/7/6(月) 17:21 発言

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