ハイパーリンク先ファイルを新規に作成する
保存先を選んで新しいリンク先ブックを作り、A1にリンクを設定します。
実行前に確認
- A1の値・数式を上書きします。既存ファイルがある場合は処理を止めます。
- 関連付けやExcel環境に依存するためデスクトップ版で試してください。
1サンプルコード
Sub Example1135()
Dim ws As Worksheet
Dim p As Variant
Dim h As Hyperlink
Set ws = ThisWorkbook.Worksheets("Sheet1")
p = Application.GetSaveAsFilename(InitialFileName:="LinkedBook.xlsx", FileFilter:="Excelブック (*.xlsx),*.xlsx")
If VarType(p) = vbBoolean Then Exit Sub
If Len(Dir(CStr(p))) > 0 Then
MsgBox "同名ファイルがあります。別名を選んでください。"
Exit Sub
End If
If MsgBox("新規ファイルを作り、A1をリンクに書き換えますか?", vbYesNo + vbExclamation) <> vbYes Then Exit Sub
Set h = ws.Hyperlinks.Add(Anchor:=ws.Range("A1"), Address:=CStr(p), TextToDisplay:="新規ブック")
h.CreateNewDocument FileName:=CStr(p), EditNow:=True, Overwrite:=False
End Sub図で見るファイルの変化
イメージ図概念図:新しいファイルと、そのファイルを指すリンクを作ります。
変更前
選んだ保存先にLinkedBook.xlsxがまだない
手動:保存先と確認
保存画面で場所・名前を選び、確認で[はい]
マクロ:作成
Sheet1!A1に「新規ブック」のリンクを作り、リンク先を新規作成
変更後
選んだ保存先に新規.xlsxができ、編集用に開く
LinkedBook.xlsxは初期候補名です。キャンセル・同名ファイルあり・[いいえ]なら作成を中止。A1の値や数式は上書きされます。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。A1を空け、保存可能なローカルフォルダーを用意します。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。
- 3
保存画面で新しいファイル名を選びます。拡張子は.xlsxのままにします。
- 4
マクロ内にカーソルを置いてF5で実行します。新規リンク先ファイルが作成され、編集用に開きます。