ワードで文書を作成し保存する際、<ドキュメント>フォルダ内に<文書>フォルダーを作って保存しているのでが、文書が未完成のまま保存する場合、文書フォルダーに保存と同時にデスクトップの特定のフォルダー(例えば <やりかけ>フォルダー)にも、その文書ファイルのショートカットを保存したいのです。そうすれば、いつもデスクトップの<やりかけ>フォルダーを覗けば、やりかけの文書ファイルをすぐに開くことができるし、完成すれば、そのショートカットを削除すれだけで済むからです。
ワードのマクロでできるのかな?と思っているのですが、マクロの初心者でやり方がわからずにいます。マクロだけでは出来ないような気もするのですが…。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
こちら↓の過去ログにあるExcelのマクロを応用してはいかが。
エクセルのマクロを使ってショートカットアイコンを作成
http://oshiete1.goo.ne.jp/qa2317683.html
WorkbookをDocumentに変えるだけで利用できると思います。
例:
'-------------------------ここから-------------------------
Sub FileSave()
'
' FileSave Macro
' 作業中の文書またはテンプレートを保存します。
'このとき、デスクトップ上にショートカットを作成します。
'
Dim WSHShell As Object
Dim objSc As Object
Dim Fmei As Variant
Dim fol As String
Dim wd As Document
Set wd = ActiveDocument
Set WSHShell = CreateObject("WScript.Shell")
Fmei = wd.FullName
fol = CreateObject("WScript.Shell").SpecialFolders("Desktop")
'デスクトップの特定フォルダなら、()内の「fol」の次""で囲って追加
Set objSc = WSHShell.CreateShortcut(fol & "\" & Dir(Fmei) & ".lnk")
With objSc
.TargetPath = Fmei
.Save
End With
End Sub
'-------------------------ここまで-------------------------
このマクロは、[ Save ](上書き)のショートカットキーなどで上書きを
すると特定の場所にショートカットを用意します。
[名前をつけて保存]では、保存をしたいフォルダに保存するだけなので、
最初に[名前をつけて保存]で保存用フォルダへと保存しておきます。
きちんと保存されていれば、上書きをするときにショートカットを作成
して、文書の上書きもします。
上書きを繰り返せばショートカットと文書の両方を上書きします。
(マクロのフォルダ名を変更すれば、変更した先にショートカット作成)
この回答への補足
一部書き換えただけで希望の物ができあがりました。
ありがとうございます。
マクロの初心者なので各行の働きは充分には理解できないでいます。
もしお時間があれば、
各行の解説をしていただければありがたいです。
No.6
- 回答日時:
No.3&4です。
私が紹介したマクロでの各行の解説しなくても、質問者さんのほうが私
よりも理解しているのでは?
Wordのマクロ初心者という意味なのか、マクロ全般の初心者なのかで、
初心者の意味が全然違うので。たぶん前者のほうだと思う。
基本的な解説は、No.5の回答者さんが説明していることで理解できると
思いますし、オブジェクトとしての" WSHShell "のことが解ることで、
マクロの内容はほとんど理解できると思います。
No.5の回答内で紹介している、[ WSH ]の[ WshShell ]オブジェクトでの
[ CreateShortcut ]メソッドのことのようですね。
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh1 …
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh1 …
ちなみにWord独自のマクロの特徴である、マクロ名にコマンド名がつく
場合にコマンド命令がユーザー設定したマクロのほうを優先にする仕様
があるために、[ FileSave ]コマンドをユーザが指定したマクロで実行
することができるため、マクロ名を" FileSave "にしてあります。
例:既定のコマンドマクロ[ FileSave ]の場合
Sub FileSave()
'
' FileSave Macro
' 作業中の文書またはテンプレートを保存します。
'
ActiveDocument.Save
End Sub
このコマンドマクロに指定条件を追加すれば、コマンドの実行時に他の
処理もしてくれるのです。
「 ActiveDocument.Save 」を最初にするかどうかはわかりやすいほうで
よいと思います。私の場合はDimで宣言している処理を先にしてから、
本来の処理をさせているだけですので。
今回はWordでのマクロについて回答しましたが、マクロはWordに限らず
未だに苦手ですので、他でも質問が新規にあっても私が回答することは
ほとんどありません。Wordの一般機能については、わかる範囲で回答を
続けていますが、どの回答も[自信なし]に近いものですね。回答をする
ことで私自身がスキルアップさせることができるので、いまだに回答を
続けているだけですので、今回はこれぐらいしか追加補足はできません。
では(^^)/~~~
No.5
- 回答日時:
>回答番号:No.2 この回答への補足
enunokokoroさんのコメントで問題は解決されたにも係わらず、
当方の提案内容も、無視せずに確認していただけるとは嬉しいことです。
お礼を申し上げます。
>十分調べずに質問するのも気が引けるのですが、まず次の行のAs以下がわかりません。
>>Dim myWSH As New IWshRuntimeLibrary.WshShell
>>Dim myShortcut As IWshRuntimeLibrary.WshShortcut
私もここら辺のことは勉強不足(していない)で解りません。
多分下記のページで解説されていることだと思います。
事前バインディングと実行時バインディングの違い
http://chaichan.web.infoseek.co.jp/vbtips/VBMemo …
>まず、最初に
>ActiveDocument.Save
>を挿入して編集中のファイルを保存する。
後先はどちらでも構わないと思います。
>> myPath = myWSH.SpecialFolders("Desktop") & "\" & "ペイント.lnk"
>("Desktop")のあとを & "\やりかけ\編集中のファイル名.ink"
>にすればいいのでしょうか。
そうですね。
ショートカットとショートカットを作成する場所を指定しているようです。
>>.TargetPath = "c:\windows\system32\mspaint.exe"
>を編集中のファイル名に替えてフルパスで表記すればいいのでしょうか。
ファイル本体の保存場所をフルパスで指定しているようです。
つまりリンク先ですね。
.IconLocation = "c:\windows\system32\mspaint.exe"
はアイコンのある場所でしょうね。
無くても、勝手にWordのアイコンを使って作成されます。
.Description = "ショートカット作成テスト"
はコメントです。
.Hotkey = "Ctrl+Alt+P"
はショートカットキーを設定しているようです。
WSHを始めよう - @IT
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh0 …
No.4
- 回答日時:
No.3です。
前の回答で紹介したマクロだと上書きにならないので一部訂正。
フォルダ指定もしておきます。
Sub FileSave()
'
' 作業中の文書を上書き保存し、デスクトップ上にショートカットを作成。
'
Dim WSHShell As Object
Dim objSc As Object
Dim Fmei As Variant
Dim fol As String
Dim wd As Document
'デスクトップの<やりかけ>フォルダにショートカット
Set wd = ActiveDocument
Set WSHShell = CreateObject("WScript.Shell")
Fmei = wd.FullName
fol = CreateObject("WScript.Shell").SpecialFolders("Desktop")
Set objSc = WSHShell.CreateShortcut(fol & "\やりかけ" & "\" & Dir(Fmei) & ".lnk")
With objSc
.TargetPath = Fmei
.Save
End With
'使用中の文書の上書き
ActiveDocument.Save
End Sub
補足していただきありがとうございます。
私は前回の回答を参考に
>'使用中の文書の上書き
> ActiveDocument.Save
を、最初の行にいれました。
これから、教えていただいたマクロと、選択文字列をファイル名にするマクロをつなげて、さらに保存するときにショートカットを作成するかどうか尋ねるマクロを付け足そうと考えています。
本当にありがとうございました。これで仕事もはかどると思います。
No.2
- 回答日時:
解らないところを具体的に補足質問してください。
この回答への補足
落ち着いて見直してきたら少しですがわかってきました。
>[ツール]→[参照設定]で「Windows Script Host Object Model」をチェック
このツールがどこになるのかわからなかったり…初歩的なミスですね。はずかしいです。VBAのツールですよね。
十分調べずに質問するのも気が引けるのですが、まず次の行のAs以下がわかりません。
>Dim myWSH As New IWshRuntimeLibrary.WshShell
>Dim myShortcut As IWshRuntimeLibrary.WshShortcut
後の行もよくわからないですが…
教えていただいたサンプルマクロを次のようにすればよいのでしょうか。
まず、最初に
ActiveDocument.Save
を挿入して編集中のファイルを保存する。
> myPath = myWSH.SpecialFolders("Desktop") & "\" & "ペイント.lnk"
("Desktop")のあとを & "\やりかけ\編集中のファイル名.ink"
にすればいいのでしょうか。
>.TargetPath = "c:\windows\system32\mspaint.exe"
を編集中のファイル名に替えてフルパスで表記すればいいのでしょうか。
もう少しがんばってみます。
No.1
- 回答日時:
下記ページが参考になります。
Accessの例ですがWordでも同じです。
デスクトップにショートカットを作成する
http://www.moug.net/tech/acvba/0020025.htm
早々にご返事ありがとうございます。
マクロ初心者には敷居が高くて理解できないでいます。ごめんなさいm(__)m
大事なことを忘れていたのでここに追記します。
OS:WinXP
Wordは2003です
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/03/31 12:46
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- その他(プログラミング・Web制作) 新しいフォルダを作るbatファイルを作りたいです。 1 2022/10/15 00:41
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
別のパソコンでエクセルのマク...
-
エクセルマクロにてパワーポイ...
-
VBAを一度起動するとずっと出て...
-
昨日まで動いていたエクセルの...
-
コピーしたファイルのマクロを...
-
マクロを消すマクロは不可能?
-
エクセルでマクロを別のPCで利...
-
excelでpersonal.xlsを常に開く...
-
「開いているすべてのブック」...
-
excelが別プロセスで起動してし...
-
【マクロ】エラーが発生⇒実行時...
-
エクセルマクロを有効にしない...
-
VBAで他のBOOKを開いた時に表示...
-
EXCELマクロコードを、それを含...
-
エクセルで、ハイパーリンクを...
-
excelのマクロ実行でブロックさ...
-
Excel のマクロを常に有効にで...
-
アクセスからエクセルファイル...
-
VBA マクロ実行時エラー’1004Ra...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
VBA マクロ実行時エラー’1004Ra...
-
VBAを一度起動するとずっと出て...
-
別のパソコンでエクセルのマク...
-
コピーしたファイルのマクロを...
-
マクロを消すマクロは不可能?
-
昨日まで動いていたエクセルの...
-
エクセルファイルを自身のファ...
-
エクセル2013vbaで、見えない名...
-
Excelマクロ ファイル名が変わ...
-
エクセルマクロ実行中に別ファ...
-
excelファイルに使われているVB...
-
Excelが勝手にシート移動してし...
-
Word用のマクロが急に働かなく...
-
EXCEL マクロ クリップボードク...
-
【マクロ】エラーが発生⇒実行時...
-
excelが別プロセスで起動してし...
-
エクセルマクロを有効にしない...
-
アクセスでファイルを開いたと...
-
excelでpersonal.xlsを常に開く...
おすすめ情報