goo blog サービス終了のお知らせ 

私的備忘録

C#とかVBAとか。自分の備忘用なので丁寧には書いてないのであしからず。

ブックの開閉、保存、警告を切る

2020-05-17 | 日記

◆◆◆ブックの開閉
◆ブックを開く
Workbooks.Open FileName:="C:\test\Dummy.xlsx"
・カレントフォルダ内のブックを開く(⇒ファイル名のみでよい)
Workbooks.Open FileName:="Dummy.xlsx"
・第一引数に指定してもよい
Workbooks.Open "Dummy.xlsx"
・定石として、ブックを開くと同時に変数にセット
Set TargetBook = Workbooks.Open("C:\test\Dummy.xlsx")

◆ブックを開くときに、リンクを更新しない(警告を出さない)
(「このブックには、ほかのデータソースへのリンクが含まれています・・・」の警告を出さない)
Workbooks.Open の第2引数( Updatelinks )に0を指定

◆開いたブックが読み取り専用(他の人が編集中)であるかをチェック
If myBook.ReadOnly = True Then
    MsgBox "他のユーザーがファイルを編集中のため、処理できません。" _
            & "ファイルを閉じて終了します。"
    myBook.Close
    Exit Sub
End If


◆◆ブックのパス、フォルダ
◆ ThisWorkbook のパスを取得する
ThisWorkbook.Path


◆◆フォルダの操作(FSO使わない場合)
◆フォルダを作成(FSO使わない方法)
MkDir Path:= (フルパス)
・存在確認をしてから実行する。

◆フォルダの存在確認(FSO使わない方法)
If Dir(出力フォルダ, vbDirectory) <> "" Then
    MsgBox "すでに存在"
    End
End If
・フルパスで指定
・第2引数を指定しないとファイルの存在確認になる

 

◆◆保存、閉じる、名前を付けて保存
◆ブックを閉じる
Workbooks("Dummy.xlsx").Close
・確認メッセージを表示せずに保存して閉じる
Workbooks("Dummy.xlsx").Close SaveChanges:=True
・確認メッセージを表示せずに保存しないで閉じる
Workbooks("Dummy.xlsx").Close SaveChanges:=False
(⇒警告を切るの項も参照)

◆ブックを保存、ファイルを保存(名前を付けて保存)
・保存後あえて閉じずに残す(目視確認するため)例:
Dim 保存ファイル名 As String
保存ファイル名 = ThisWorkbook.Path & "\" _
    & "【記入済】" & Format(Date, "yyyymmdd") _
    & ファイル名ws.Range(指定ファイル名).Value
ActiveWorkbook.SaveAs FileName:=保存ファイル名
・ SaveAs には引数で FileName:= があり、ここでファイルの種類(.xlsxや.xlsmなど)を指定することが可能。

◆保存/閉じる際の警告について⇒警告を切るの項も参照
・ Application.DisplayAlerts = False    (処理後に適宜 True に戻すこと)
・ .Saved プロパティを調べて(変更有無を調べて)対処

◆保存しないで閉じる例その他
Application.CutCopyMode = False     '//警告ダイアログ出さない
対象bk.Close SaveChanges:=False

◆上書き保存
Workbookオブジェクト.Save

◆ブックの変更有無を調べる
Workbookオブジェクト.Saved = True
・変更がなければ True 、変更されていれば False が返ってくる。
・意図的に True に設定することで「保存せずに閉じる」ことが可能になったりする。


◆◆◆警告を切る
・さまざまな警告を非表示にする
Application.DisplayAlerts = False
(一度警告を切るとその状態のまま続く)
・警告を表示するように戻す
Application.DisplayAlerts = True

・切り取り、コピー中の「セル枠線の点滅表示」を解除する(「クリップボードに大きな情報があります・・・」云々を出なくする?)
Application.CutCopyMode = False
(これはFalseしか設定できない。ヘルプ等の記述は誤りらしい。)

 



コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。