珍しく集中

滅多にないことですが今日は昼頃起きてからず~っと金曜に頼まれたExcelVBAのプログラミングがんばってました。
ひとつのことに集中するのとにかくニガテなので…それで珍しく(汗
まぁ、昨日買った参考書読みながらヘタレだけど最初の部分はとりあえずできたかな…
あとは読み込ませる現物手に入れてからでないとできなさげ。

かなりヘタレで突っ込みどころ満載だろうけどソース貼ってみる。
VBA触れ始めて二日目なのでお察しください(´・ω・`)

もしよければ心優しい方ソース見てアドバイスくださぃな(´・ω・`)

–<module1>–

Option Explicit ‘関数の宣言を強制。スペルミス対策

Private p As Variant, t As Variant ‘モジュール全体で使うためココで宣言。
Private mypath As String, fullname As String, namehead As String, filename01 As String, filename02 As String

Sub input01() ‘月入力メッセージボックス
p = Application.InputBox(prompt:=”何月度のファイルを参照しますか?”, Title:=”月の選択”, Type:=1)

Select Case p
Case 1 To 12: Call fileopen ‘1~12の数字ならファイルオープン処理へ飛ぶ

Case False: Call end01 ‘キャンセルが押された時は終了処理へ。

Case Else ‘1~12以外の数字が入力された時用ダイアログ
MsgBox prompt:=”1~12の範囲の数字を入力してください。”, Buttons:=”64″, Title:=”警告”
Call input01

End Select

End Sub

Private Sub end01() ‘終了確認
Dim e As Integer
e = MsgBox(prompt:=”処理を終了していいですか?ファイルは閉じません。”, Buttons:=”36″, Title:=”確認”)
If e = vbNo Then Call input01

End Sub

Private Sub fileopen()
Dim e As Integer
‘—————-設定ここから———————————————
mypath = “”
namehead = “test” ‘ファイル名のうち固定部分
‘—————-ここまで————————————————-

Select Case p ‘1~9月の場合それぞれアタマに0追加
Case 1: t = “01”
Case 2: t = “02”
Case 3: t = “03”
Case 4: t = “04”
Case 5: t = “05”
Case 6: t = “06”
Case 7: t = “07”
Case 8: t = “08”
Case 9: t = “09”
Case 10: t = “A” ‘10~12月の場合A,B,Cに
Case 11: t = “B”
Case 12: t = “C”
End Select

mypath = ThisWorkbook.Path & “\test\” ‘開くファイルのパスを設定
filename01 = namehead & “01” & t & “.xls” ‘ファイル名を月から生成
fullname = mypath & filename01

If Dir(fullname)

‘1つめ
With Workbooks.Open(fullname, ReadOnly:=True) ‘読取専用モードでブックをロード
ThisWorkbook.Activate
.Sheets(1).Range(“B2:I41”).Copy Destination:=Sheets(2).Range(“B2”) ‘開いたファイルからコピー
End With
Workbooks(filename01).Close

‘2つめ以降はファイル有無チェックなし
‘2つめ
filename01 = namehead & “02” & t & “.xls” ‘ファイル名を月から生成
fullname = mypath & filename01
With Workbooks.Open(fullname, ReadOnly:=True) ‘読取専用モードでブックをロード
ThisWorkbook.Activate
.Sheets(1).Range(“B2:K41”).Copy Destination:=Sheets(2).Range(“N2”) ‘開いたファイルからコピー
End With
Workbooks(filename01).Close

Sheets(1).Range(“F5”).Value = p & “月度汚泥処理月報”
Sheets(1).Range(“R5”).Value = p & “月度汚泥処理月報”

Else ‘ココ以降に書くとX
MsgBox prompt:=p & “月のファイルは存在しないようです。”, Buttons:=vbCritical, Title:=”エラー”
Call input01
End If

End Sub

General · 未分類
いいね!   0
Loading...

関連

コメントを残す

メールアドレスが公開されることはありません。