お願いします。
長文失礼します。
下記マクロを実行しても、screenupdatingが機能せず、
ブック展開やページ移動が丸見えで、わずらわしいです。
ブックopenや他のマクロに移ると機能しないものなのですか?
それとも、コード記述に誤りがあるのでしょうか?
excel2007
「管理表.xlsmにて指定された過去データ.csvファイルを開いて、それを表示用xlsmブックに書き出し表示するマクロ」
(管理表.xlsm、表示.xlsmそれぞれに)
Thisworkbook.Open にて「画面最大化」のマクロ
(管理表.xlsmファイルの標準モジュールに記載)
Sub 検索する()
On Error GoTo ErrorHandler
Dim bn As String
Dim sheetn As String
Dim セル1 As String
Dim セル2 As String
Dim セル3 As String
Dim 年 As String
Dim 月 As String
Dim 日 As String
Dim 検索日 As String
Dim アドレス As String
Dim nsheet As String
Dim nbook As String
Dim csheet As String
Dim cbook As String
Dim nアドレス As String
Dim fso
Dim sFile As String
bn = "管理表.xlsm"
sheetn = "検索"
セル1 = "M30"
セル2 = "Q30"
セル3 = "V30"
年 = Workbooks(bn).Sheets(sheetn).Range(セル1).Value
月 = Workbooks(bn).Sheets(sheetn).Range(セル2).Value
日 = Workbooks(bn).Sheets(sheetn).Range(セル3).Value
検索日 = (年) & (月) & (日) & (235400)
アドレス = "C:\モニターシステム\管理者用\DB\DB" & (検索日) & ".csv" 'パス変更注意
nアドレス = "C:\モニターシステム\管理者用\system\program\表示.xlsm"
cbook = "DB" & (検索日) & ".csv"
csheet = "DB" & (検索日)
nbook = "表示.xlsm"
nsheet = "手動操作"
Workbooks.Open Filename:=nアドレス, ReadOnly:=True
Workbooks(nbook).Sheets("検索中").Select
Application.ScreenUpdating = False
sFile = アドレス
Set fso = CreateObject("Scripting.FilesystemObject")
If fso.FileExists(sFile) = True Then
Workbooks.Open Filename:=アドレス
Workbooks(cbook).Sheets(csheet).Copy_After:=Workbooks(nbook).Sheets(nsheet)
Application.Run (nbook) & "!" & "データ転送" '転送表示マクロ
Application.Run (nbook) & "!" & "シート保護" 'シート保護マクロ
UserForm4.Show (vbModeless)
Else
MsgBox "ファイルが存在しません"
End If
Exit Sub
ErrorHandler:
MsgBox "検索表示に失敗しました。入力数字を確認してください。 ※一桁の数字は、必ず先頭に0を付けてください。", vbInformation, "検索失敗"
Err.Clear
End Sub
(workbook(表示.xlsm)の標準モジュールに記載)
Sub データ転送()
Dim bn As String
Dim sheetn As String
Dim セル1 As String
Dim セル2 As String
Dim セル3 As String
Dim 年 As String
Dim 月 As String
Dim 日 As String
Dim 検索日 As String
Dim csheet As String
Dim ccell As String
Dim psheet As String
Dim pcell As String
Dim pbook As String
Dim cbookad As String
bn = "管理表.xlsm" '変更注意
sheetn = "検索"
セル1 = "M30"
セル2 = "Q30"
セル3 = "V30"
年 = Workbooks(bn).Sheets(sheetn).Range(セル1).Value
月 = Workbooks(bn).Sheets(sheetn).Range(セル2).Value
日 = Workbooks(bn).Sheets(sheetn).Range(セル3).Value
検索日 = (年) & (月) & (日) & (235400)
cbook = "DB" & (検索日) & ".csv"
cbookad = "C:\モニターシステム\管理者用\DB\DB" & (検索日) & ".csv"
pbook = "表示.xlsm"
csheet = "DB" & (検索日)
ccell = "A3:P160"
psheet = "管理"
pcell = "F10:P160"
Workbooks(pbook).Activate
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("管理").Visible = xlSheetVisible
Workbooks.Open Filename:=cbookad
Workbooks(cbook).Sheets(csheet).Range(ccell).Copy _ Workbooks(pbook).Sheets(psheet).Range(pcell)
Workbooks(cbook).Close savechanges:=False
Sheets("記録表").Select
Range("A1").Select
ThisWorkbook.Worksheets("管理").Visible = xlSheetHidden
UserForm14.Show '終了ボタン
Application.ScreenUpdating = True
End Sub
汚く拙いマクロで申し訳ありませんが、
宜しくお願いします。
おはようございます。
昨日は、息子を寝かしつけてたら、一緒に寝ちゃって。。
すみません。
直してみたコードです。
Sub 検索する()
Dim bn As String
Dim sheetn As String
Dim セル1 As String
Dim セル2 As String
Dim セル3 As String
Dim 年 As String
Dim 月 As String
Dim 日 As String
Dim 検索日 As String
Dim cアドレス As String
Dim pアドレス As String
Dim pbook As String
Dim fso
bn = "予冷庫 温湿度管理表.xlsm"
sheetn = "検索"
セル1 = "M30"
セル2 = "Q30"
セル3 = "V30"
年 = Workbooks(bn).Sheets(sheetn).Range(セル1).Value
月 = Workbooks(bn).Sheets(sheetn).Range(セル2).Value
日 = Workbooks(bn).Sheets(sheetn).Range(セル3).Value
検索日 = (年) & (月) & (日) & (235400)
pbook = "表示.xlsm"
cアドレス = "C:\JAあいち知多\管理者用\DB\DB" & (検索日) & ".csv" 'パス変更注意
pアドレス = "C:\JAあいち知多\管理者用\system\program\表示.xlsm"
Set fso = CreateObject("Scripting.FilesystemObject")
If fso.FileExists(cアドレス) = True Then
Workbooks.Open Filename:=pアドレス, ReadOnly:=True
Workbooks(pbook).Sheets("検索中").Select
Application.ScreenUpdating = False
Workbooks.Open Filename:=cアドレス
Call 表からデータ転送
Else
MsgBox "ファイルが存在しません"
End If
Exit Sub
ErrorHandler:
MsgBox "検索表示に失敗しました。入力数字を確認してください。 ※一桁の数字は、必ず先頭に0を付けてください。", vbInformation, "検索失敗"
Err.Clear
End Sub
Sub 表からデータ転送()
Application.ScreenUpdating = False
Dim bn As String
Dim sheetn As String
Dim セル1 As String
Dim セル2 As String
Dim セル3 As String
Dim 年 As String
Dim 月 As String
Dim 日 As String
Dim 検索日 As String
Dim csheet As String
Dim ccell As String
Dim psheet As String
Dim pcell As String
Dim pbook As String
Dim cbookad As String
bn = "予冷庫 温湿度管理表.xlsm" '変更注意
sheetn = "検索"
セル1 = "M30"
セル2 = "Q30"
セル3 = "V30"
年 = Workbooks(bn).Sheets(sheetn).Range(セル1).Value
月 = Workbooks(bn).Sheets(sheetn).Range(セル2).Value
日 = Workbooks(bn).Sheets(sheetn).Range(セル3).Value
検索日 = (年) & (月) & (日) & (235400)
cbook = "DB" & (検索日) & ".csv"
cbookad = "C:\JAあいち知多\管理者用\DB\DB" & (検索日) & ".csv"
pbook = "表示.xlsm"
csheet = "DB" & (検索日)
ccell = "A3:P160"
psheet = "管理"
pcell = "F10:P160"
Workbooks(cbook).Sheets(csheet).Copy After:=Workbooks(pbook).Sheets("手動操作")
Workbooks(pbook).Worksheets("管理").Visible = xlSheetVisible
Workbooks(cbook).Sheets(csheet).Range(ccell).Copy Workbooks(pbook).Sheets(psheet).Range(pcell)
Workbooks(cbook).Close savechanges:=False
Sheets("記録表").Select
Range("A1").Select
ThisWorkbook.Worksheets("管理").Visible = xlSheetHidden
Application.Run (pbook) & "!" & "シート保護"
UserForm4.Show (vbModeless)
UserForm14.Show
Application.ScreenUpdating = True
End Sub
連登すみません。
イミディエイトウィンドウはウインドウ内に直接打つ使用ではなくプロシージャ内に入れて実行します。
例)
Sub デバッグテスト()
Debug.Print "Step1まで進みました。:"&Application.ScreenUpdating
Debug.Print "Step2まで進みました。:"&Application.ScreenUpdating
End Sub
どこまで処理が進んで状況がどうか見れます。
お礼
ありがとうございます。 今昼食中で戻り次第、やってみます。 伏せ字は、忘れてました。マズいですね。 消せるかしら。 私は静岡からなんですがね。
補足
やってみました。 前バージョンの方がちらつきは少ないです。 今回バージョンだとCSVからXLSMに読込むときにそれぞれ映ります。 前バージョンはCSVから最終画面にいきます。 どちらにしせよ、CSV画面がでてしまいます。 不通は開いたブック、CSVに対しても、 Application.ScreenUpdatingは効くんですか?