
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> ActiveWorkbook.SaveAs Filename:=strBookPath
> に問題があるようでエラーが出てしまいます。
Excelのバージョンとエラーの内容を書いてもらえると助かります。
Excelの質問を投稿すると「回答者の第一声はいつもこれだな!」と鬱陶しくなるくらいよく訊かれるところですが、これがないと回答の幅が広がりすぎてしまいますので。
回答のコードをそのまま実行されているのでしょうか。
それでしたら strFolderA, strBookName , strFolderB , strFileName は質問者さんが想定されているフォルダ名・ファイル名に変えてください。
Excelのバージョンの記載が無くて初心者とおっしゃっているので最近のExcel (2007,2010) だろうと判断したのですが、その辺りはどうでしょうか。
バージョンによってExcelの見た目が変わるように、マクロも書き方の変わる箇所がでてきます。
バージョンによってファイル名の指定は変える必要があります。
ご存知かもしれませんが、一応書いておきます。
最近のExcelで「マクロなしのブック」だと".xlsx"で終わる名前にするところを古いExcelだと"xls"にしないとうまくいきません。
最近のExcelでも保存したいものが「マクロありのブック」だとxlsmでないとエラーが出ます。
(Excel 2007,2010 マクロ無しのブック) aaa.xlsx
(Excel 2007,2010 マクロ入りのブック) aaa.xlsm
(Excel 2002,2003) aaa.xls
もし仮に保存できたとしても内容と食い違っていると開くときに警告が出ることがあります。
strFolderA, strFolderB に指定したフォルダーが実際に見つからない場合も保存できないのでエラーになります。
質問に明記されていませんでしたが、ファイル名は毎回変えられるようにしたいということならGetSaveAsFilenameという関数を使うと保存ダイアログを出せるので便利です。
そのマクロを下に記載しておきますが、マクロ中に出てくる xlsx・xlsm はバージョン・ブック内容によっては書き換えが必要です(上述)。
-------------------------------------------------------
Sub SaveAndCreateShortcut()
'ブックを保存
strBookPath = Application.GetSaveAsFilename( _
fileFilter:="Excel ブック (*.xlsx), *.xlsx, Excel マクロ有効ブック (*.xlsm), *.xlsm", _
Title:="ブックの保存")
If strBookPath = False Then
MsgBox "保存取り消し"
Exit Sub
End If
ActiveWorkbook.SaveAs Filename:=strBookPath
ActiveWorkbook.Close
Set objShell = CreateObject("WScript.Shell")
'ショートカットの名前
strFileName = Application.GetSaveAsFilename( _
Title:="ショートカット名の指定")
If strFileName = False Then
MsgBox "ショートカット作成取り消し"
Exit Sub
End If
If Right(strFileName, 1) = "." Then
strFileName = strFileName & "lnk"
Else
strFileName = strFileName & ".lnk"
End If
'ショートカットのオブジェクトを作成
Set objShortCut = objShell.CreateShortcut(strFileName)
'ショートカットの指す先としてフォルダ(A)内のブックを指定
objShortCut.TargetPath = strBookPath
'ショートカットを保存(実際に作成)
objShortCut.Save
Set objShortCut = Nothing
Set objShell = Nothing
End Sub
-------------------------------------------------------
No.1
- 回答日時:
VBAでショートカットを作成する例が見つけにくいのですかね。
WshShellオブジェクトというのを使って、(2)と(3)はまとめてできます。
日本語で言うなら、「(A)内のブックのショートカットを(B)に作る」となります。
探せばVBAのコードそのものもあるのでしょうが、VBScriptのコードもかなり似ていて参考になります。
http://www.kanaya440.com/contents/tips/vbs/008.h …
http://www.atmarkit.co.jp/fwin2k/operation/wsh06 …
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh1 …
http://msdn.microsoft.com/ja-jp/library/cc364400 …
一つ目のURLのがシンプルで分かりやすそう(VBAではないんですが)。
最後のはMicrosoftの説明ですが、こんなにたくさんオプションを指定しなくても普通は事足りるでしょう。
これらを参考にExcel VBAで書いたら、例えば次のような感じ。
(実行直前に作業中のブックがアクティブな状態になってる場合)
------------------------------------------
Sub SaveAndCreateShortcut()
'フォルダ(A)にブックを保存
strFolderA = "C:\tmp\folder_A"
strBookName = "aaa.xlsx"
strBookPath = strFolderA & "\" & strBookName
ActiveWorkbook.SaveAs Filename:=strBookPath
ActiveWorkbook.Close
'WSHShell オブジェクトを作成
Set objShell = CreateObject("WScript.Shell")
'フォルダ(B)に作るショートカットの名前
strFolderB = "C:\tmp\folder_B"
strFileName = strFolderB + "\aaaのショートカット.lnk"
'ショートカットのオブジェクトを作成
Set objShortCut = objShell.CreateShortcut(strFileName)
'ショートカットの指す先としてフォルダ(A)内のブックを指定
objShortCut.TargetPath = strBookPath
'ショートカットの内容を保存
objShortCut.Save
Set objShortCut = Nothing
Set objShell = Nothing
End Sub
------------------------------------------
この回答への補足
試しに行ってみましたが、序盤部分
ActiveWorkbook.SaveAs Filename:=strBookPath
に問題があるようでエラーが出てしまいます。
作業中のブックはもちろんアクティブになっていますし。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Windows 10 ショートカットの作り方と使い方について教えて下さい。 3 2022/05/27 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/12 16:58
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スマホの画面上のショートカッ...
-
WPSスプレッドシートの起動オプ...
-
gmail の送信ショートカットに...
-
デスクトップのショートカット...
-
エクセルのコピーがスクラップ...
-
消した覚えのない大事なデータ...
-
Officeのミニツールバーをキー...
-
黒染め(黒髪)ボブが似合うのっ...
-
ショートカットのリンク先を一...
-
ACCESSにて作成したデーターを...
-
Siriの提案で、LINEの友達がで...
-
“コピー”と“ショートカットの作...
-
MT4を2つ入れてデスクトップに...
-
面長なんですがロングとボブど...
-
オートフィルオプションへのシ...
-
iPhoneでアクセシビリティのVoi...
-
真似してくる後輩に限界です。...
-
大黒屋HD(6993)はなぜ倒産し...
-
髪型を思いっきり失敗して学校...
-
前髪が両サイドから真ん中に集...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホの画面上のショートカッ...
-
gmail の送信ショートカットに...
-
Python でWindowsのショートカ...
-
デスクトップのショートカット...
-
WPSスプレッドシートの起動オプ...
-
“コピー”と“ショートカットの作...
-
Officeのミニツールバーをキー...
-
エクセルのコピーがスクラップ...
-
オートフィルオプションへのシ...
-
ACCESSにて作成したデーターを...
-
iPhoneでアクセシビリティのVoi...
-
Siriの提案で、LINEの友達がで...
-
MT4を2つ入れてデスクトップに...
-
面長なんですがロングとボブど...
-
ショートカットのリンク先を一...
-
ロングが似合う人の特徴はなん...
-
いつも髪を切ると美容師の方に...
-
私、顔が丸顔で顔大きいんです...
-
フォルダにショートカット作成
-
CapsLockの初期設定の仕方を教...
おすすめ情報