[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定シート名前まで作業したい』(あすか)
お世話になります
教えていただけないでしょうか
下記のマクロはシート一枚目の作業です続いて
2枚目以降は マクロ ”フォルダー取得” を除いた作業を行いたいです
その時 シート名 資料という名前の前まで
行いたいです
お手数おかけしますが 上記の作業させるには
どのように書けばいいのでしょうか
よろしくお願いします
Private Sub CommandButton1_Click()
フォルダー取得
Dim TargetPath As String
Dim myFname As String, i As Long, l As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
l = "=LEFT(A2,14)"
i = 2
TargetPath = Me.TextBox1.Value
ThisWorkbook.ActiveSheet.Copy before:=Workbooks.Add.Sheets(1)
TargetPath = Me.TextBox1.Value
ActiveSheet.SaveAs TargetPath & "\" & _ Left(Range("a2").Value, 14) & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox UserForm4.TextBox1.Text & vbCrLf & ActiveSheet.Name & vbCrLf & "作成しました"
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows7 >
ww.Active ここでエラーが出てしまいます
何処がいけないのでしょうか???
Private Sub CommandButton2_Click()
Dim ww As Worksheet
Application.DisplayAlerts = False
For Each ww In ActiveWorkbook.Sheets
If ww.Name <> "RA_RACE" And ww.Name <> "CodeTable" And ww.Name <> "SE_RACE" Then
ww.Active
Dim TargetPath As String
Dim myFname As String, i As Long, l As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
l = "=LEFT(A2,14)"
i = 2
TargetPath = Me.TextBox1.Value
ThisWorkbook.ActiveSheet.Copy before:=Workbooks.Add.Sheets(1)
TargetPath = Me.TextBox1.Value
ActiveSheet.SaveAs TargetPath & "\" & _ Left(Range("a2").Value, 14) & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False 'AX列 ActiveWorkbook.Close SaveChanges:=True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox UserForm4.TextBox1.Text & vbCrLf & ActiveSheet.Name & vbCrLf & "作成しました"
Next ww
End Sub
(あすか) 2018/03/05(月) 09:17
(隠居じーさん) 2018/03/05(月) 09:21
Private Sub CommandButton2_Click()
'==変数の宣言とか
Dim ww As Worksheet Dim TargetPath As String ' Dim myFname As String, i As Long, l As Variant Dim i As Long, n As Long
'==処理
Application.ScreenUpdating = False '画面更新停止 Application.DisplayAlerts = False '確認メッセージの表示を停止
'「資料」シートの存在をチェックして、あればその1つ前のシートのINDEX番号を変数に格納 For Each ww In ThisWorkbook.Worksheets If ww.Name = "資料" Then i = ww.Index - 1 Exit For End If Next ww
'エラー処理 If i = 0 Then MsgBox "「資料」シートが存在しない、または、最初のシートであるため処理できません" Exit Sub End If
'1番目のシートから「資料」シートの前までを処理 For n = 1 To i '1番目のシートを処理する時だけフォルダ取得を実施 If n = 1 Then '【フォルダ取得】 TargetPath = Me.TextBox1.Value End If
'新規ブックを用意 With Workbooks.Add
'n番目のシートを、新規ブックの1シート目にコピー挿入 ThisWorkbook.Worksheets(n).Copy before:=.Sheets(1)
'新規ブックをCSV形式で保存 .SaveAs _ Filename:=TargetPath & "\" & Left(Range("A2").Value, 14) & "_" & n & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False
'新規ブックを閉じる(CSV形式で保存済みなのでエクセルブックとしては保存せず閉じる) .Close SaveChanges:=True
End With Next n
Application.ScreenUpdating = True '画面更新再開 Application.DisplayAlerts = True '確認メッセージの表示を再開 End Sub (もこな2) 2018/03/05(月) 11:19
凄いですね
きれいでいいです
(あすか) 2018/03/05(月) 11:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.