[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定シート名前まで作業したい』(あすか)
お世話になります
教えていただけないでしょうか
下記のマクロはシート一枚目の作業です続いて
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.