• ベストアンサー

Microsoft word 2007で前回保存

した場所から開く方法で以下の方法を試しましたが http://note.chiebukuro.yahoo.co.jp/detail/n149438 ( 'Word2007以降の場合は以下のコード)を使用して(OSはWIN7です) ファイルを開いても「Alt + Ctrl + Z」を押さなければ前回の場所に移動しません。 End With の後に SendKeys "%^Z", True をかましてみましたがダメです。 どなたがご教授よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • s-uzen
  • ベストアンサー率65% (2051/3118)
回答No.3

Shift+F5はWord 2010以降で復活しています。 Word 2007の標準モードの場合だけ機能が削除されています。(何だったか忘れて思い出せないのですが、USのMSの開発者から聞いた話では無理とのことだったように思います) 互換モードのときは、Word 2007もShift+F5は有効で動作します。  

kyon0512
質問者

お礼

そうですか。 わかりました。 ありがとうございました。

その他の回答 (3)

回答No.4

質問でのサイト先のマクロは意味がないですね(批判ではないです)。 [ FileSeve ]のマクロのみ有効なのですが、それ以外は無意味なので。 理由としては、[ Alt+Ctrl+Z ]キーでのジャンプは、他の回答にもある [ GoBack ]コマンドの[ Shift+F5 ]キーと同じものだからです。 http://support.microsoft.com/kb/290938/ja ですから[ Alt+Ctrl+Z ]キーでジャンプした先は、[ FileSeve ]で登録 したブックマーク名「継続」先へのジャンプではなく、既存の編集箇所へ ジャンプする機能でのジャンプ先だからです。 カーソル位置を移動し上書き保存したときの位置と[ Alt+Ctrl+Z ]キー での移動先が違うことを確認すれば、理解できると思います。 他の回答者さんが書いているように、文書を開いたときにGoBackが無効 になるのは、こちら↓が参考になるかと。 Word2007限定:ファイル読込直後にShift+F5を効かせる http://salvw.miscnotes.com/index.php/archives/4866 上記で提示されたマクロでも開いて移動するわけではありません。 理由はAutoOpen のイベントでのブックマークが、Word2007など新形式 では使えないためです。 Word マクロ有効文書 (.docm) 形式の Word 文書を開くときに Open イベントの Bookmarks.Select で指定したページが表示されない http://support.microsoft.com/kb/942482/ja 関連質問 http://okwave.jp/qa/q3450741.html そこで、幾つかのサイト情報を参考にして、マクロが不得意な私なりに 作成したものが以下のものになります。 登録場所が三か所に分かれていますが、通常のマクロやコマンドマクロ の編集したものは標準モジュールに登録して、イベントはThisDocument にしています。標準モジュールへとまとめてもよいのですが、検証用に 作成したときのエラー関連などから、私は分けておくことにしました。 Classモジュールには、イベント用のオブジェクトを用意しています。 (Word2007で検証をしていませんので、実際に動作するかは保証なし) ***************************************************** ※ 標準モジュールに登録 ***************************************************** Sub FileSave() ' FileSave Macro ' 作業中の文書またはテンプレートを保存します。 ' ' 見えないセーブポイントブックマークをカーソル位置に保存  With ActiveDocument   .Bookmarks.Add Name:="_SavePlace"   .Save  End With End Sub ***************************************************** ※ThisDocumentに登録 ***************************************************** Dim x As New Class1 Private Sub Document_Open() ' 文書を開いたときに実行 Set x.objApp = Application End Sub ***************************************************** ※ Class1に登録 ***************************************************** Public WithEvents objApp As Application Private Sub objApp_DocumentOpen(ByVal Doc As Document) ' 見えないセーブポイントのブックマーク先にジャンプ  If ActiveDocument.Bookmarks.Exists("_SavePlace") Then   Selection.GoTo What:=wdGoToBookmark, Name:="_SavePlace"  End If End Sub 「見えないブックマーク」とは、[ Word のオプション]で表示させても ブックマーク記号が見えないということです。 http://office.microsoft.com/ja-jp/word-help/HP001226532.aspx 一つ一つのマクロは単純なものですから、理解できると思います。 標準テンプレートでも、専用テンプレートでも使えると思います。 特定の文書のみで登録しておいての使用も可能です。 これらのマクロは、上書きなどでカーソル位置にセーブポイントを用意 するためのブックマークを作成し、文書を開いたときにジャンプさせる ものです。セーブポイントとしての位置なので、編集箇所と同じになる わけではないので注意してください。 編集箇所とカーソル位置が一致していれば同じ位置にジャンプします。 セーブポイントにジャンプするのマクロ例も、一応用意しておきます。 ***************************************************** ※ 標準モジュールに登録 ***************************************************** Sub GoToBookMark_SavePlace() On Error Resume Next ' 見えないセーブポイントブックマーク先にジャンプ Selection.GoTo What:=wdGoToBookmark, Name:="_SavePlace" End Sub

kyon0512
質問者

お礼

やはりダメみたいです。 ↓この方法が一番有効みたいです http://note.chiebukuro.yahoo.co.jp/detail/n149438 ありがとうございました。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

AutoOpenは「Normal」の下に標準モジュールを挿入して記述しています。 「Application.GoBack」はWordを立ち上げた最初なら有効に機能するようです。  1.エクスプローラーからファイル名をダブルクリックして1つ目のWordドキュメントを開く。  2.タスクバーに登録したWordのアイコンから1つ目のWordドキュメントを開く。 この場合はちゃんと機能しました。 しかし、一旦Wordを立ち上げた後、上記1、2を行っても、AutoOpenを通るものの、GoBackが機能しないようです。 ということは、Wordを立ち上げた後、「ファイル」タブからバックステージビューで「開く」や「最近使用したファイル」から開いても機能しないはずです。 これ以上は分かりませんが、「一つ目のWordなら保存時の場所に移動できる」が私の結論です。Word2010はまだマルチタスクなのでそのあたりが絡んでいるのかもしれません。Wordがたくさん開いているように見えるが、開いているのは一つのWordということです。Word2013(Excel2013も)シングルタスクになっているので動きが違うかもしれません。 力になれなくてすいませんでした。解決方法があればいいですね。

kyon0512
質問者

お礼

ありがとうございます。 2007では「Shiftキー」+「F5キー」を使えないから Application.GoBackも効かないんだと思います。 他に方法はないかさがしてもらえないでしょうか? よろしくお願いします。

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

私は、Windows7(64ビット)+Word2010ですが、ドキュメントを開いて、前回(保存時)編集していたところに移動するときは、   ショートカットキー: 「Shiftキー」+「F5キー」 としています。 Word97もWord2000、Word2003もこうしていました。Word2007は?ですが。「Shiftキー」+「F5キー」が使えなくなったという記事を見たような気もしますが、2010で使えています。 これをドキュメントを開いたときに自動実行するには、 Sub AutoOpen()   Application.GoBack End Sub でしょう。他には何もいりません。 仕事ではWordドキュメントは先頭から見ることが多いのでショートカットキーを使っています。 合わせて使っているショートカットキーは、「Ctrlキー」+「Homeキー」と「Ctrlキー」+「Endキー」です。 「GoBack」はWord2010のコマンドマクロにあります。多分Word2007も動くはずです。 コマンドマクロがあるのに、その機能を作りにいくと、「車輪の再作成」になりかねないので気をつけるようにしています。再作成するとだいたい何か起きます。

kyon0512
質問者

お礼

回答ありがとうございます。 標準モジュールの下のModele1の中に Sub AutoOpen()   Application.GoBack End Sub を入れるんですよね? ダメなんですが、最後に編集したところに行きません。

関連するQ&A

  • エクセルの印刷ダイアログをSendkeysで操作したい。

    エクセルのマクロ処理でフォーム上のボタンから 印刷ダイアログを呼び出して、そのダイアログを Sendkeysでもって両面印刷設定にし印刷させると いう処理を行いたいのですが上手くいきません。 印刷ダイアログが表示された段階で止まり(エラーで 止まるわけではなく単に処理が止まる)、その先の Sendkeysによる命令へ進みません。 Private Sub CommandButton1_Click() Application.Dialogs(xlDialogPrint).Show SendKeys "%r", True SendKeys "%k", True SendKeys "^{tab}", True SendKeys "^{tab}", True SendKeys "^{tab}", True SendKeys "%r", True SendKeys "{enter}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "{enter}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "+{tab}", True SendKeys "{enter}", True End Sub よくSendKeysは環境によって誤作動などが起こるので 使わない方がいいと言われますが、一度どのように 動くのか試してみたいと思っています。 ちなみに上のコードは当方のプリンタでの設定手順となります。 SendKeysで印刷ダイアログにキーを送ることは できないのでしょうか? 宜しくお願いします。

  • 【sendkeysメソッドが動かずに苦慮しております】

    【sendkeysメソッドが動かずに苦慮しております】 OS:2000 Excel:2003 VB:6.5 こんにちは。 sendkeysメソッドが動かずに苦慮しております。 ネットでいろいろ調べてみましたが、やはり正常に動かすのは難しい様です。 実際、何をしたいのかと言うとプリンターの出力時の設定を変更したいと思っております。 会社のプリンターですが方針でデフォルトが「両面」「2分割」で設定されております。 ただ複数ファイルの跨ったプレゼン資料などを大量に出力する際は「片面」「分割なし」 で設定を変更してプリントアウトしたいと思っており、いろいろ調べた結果Sendkeysを 使うことにいたしました。 ただ、先に申し上げた通りsendkeysメソッドが動かず悩んでおります。 素人の不躾けなご質問で大変申し訳ありませんが、解決できる方法をご存知の方ご教授ください。 sendkeysメソッドを使わない方法でも問題ありません。 以下、ダイアログを表示させ、タブを移動させるまでのコードです。 それではどうぞよろしくお願いいたします。 Sub AAA() Dim FOS As FileSystemObject Dim FolderC As Folder Dim FilesC As Files Dim FileC As File Dim FileName, Path_Name As String Set FOS = CreateObject("scripting.filesystemobject") Set FolderC = FOS.GetFolder("C:\Documents and Settings\AAAAA\デスクトップ\TEST") Set FilesC = FolderC.Files Path_Name = "C:\Documents and Settings\AAAAA\デスクトップ\TEST\" For Each FileC In FilesC FileName = FileC.Name Workbooks.Open FileName:=Path_Name & FileName ActiveWorkbook.Worksheets(1).Select With Application .SendKeys "^{P}", True .SendKeys "%r", True .SendKeys "^{tab}", True .SendKeys "{tab 3}", True End With ActiveWorkbook.Close False Next Set FOS = Nothing End Sub

  • VBAでエクセルの表をワードに入力

    Excel/Word2002使用です。 ワードへの入力を自動化するためにVBAを使用してエクセルの表をワードのテンプレートに渡したいのですが。 エクセルのA1:C8のセルに表として値が入力されています。 この表をコピーしてワードに貼り付けます。 ワード側は何も入力されていない文書ですが、 テンプレートが用意されているので、このテンプレートを指定してワードを立ち上げます。 ワードに貼り付けられる表はタブ区切りです。 具体的には下記コード3行目の”winword.exe”を具体的なテンプレートのパス名にしたいのですが・・・ Sub word貼り付け() Dim mytskID As Double Range("A1:C8").Copy  mytskID = Shell("winword.exe", vbNormalFocus)  Application.Wait Now + TimeValue("00:00:10")  Application.SendKeys "^v", True  Application.Wait Now + TimeValue("00:00:10")  Application.SendKeys "%fa", True  Range("A1").Copy  AppActivate mytskID  Application.SendKeys "^v", True  Application.SendKeys "~", True  Application.Wait Now + TimeValue("00:00:05")  Application.SendKeys "%fx", True  Application.CutCopyMode = False MsgBox "完了しました" End Sub なお、上記コードも教科書通りにしたはずなのですが、 何故か「名前をつけて保存」のSendKeys "%fa"のときだと思うのですが、 ワード側ではファイルメニューの罫線が反応してしまいます。 あわせてご教授いただければ幸いです。 よろしくお願いします。

  • VBA 特定SVRにID,PASSを投入したい

    現在 グループ外のSVRに 下記 を使ってID,PASSを投入しておりますが 成功率があまり高くありません。 この起動EXCEL を保存しますか? 等 違う画面がでてしまいます。 他に良い方法があればご教授お願いいたします。 Dim myid As Long If Application.OperatingSystem = "Windows (32-bit) NT 5.00" Then 'windows2000 myid = Shell("c:\winnt\explorer.exe", vbNormalFocus) Else myid = Shell("c:\windows\explorer.exe", vbNormalFocus) End If If myid <> 0 Then Application.Wait Now() + TimeValue("00:00:02") SendKeys "%d", True SendKeys "\\xxx.xxx.xxx.xxx", True 'IPアドレス SendKeys "{enter}", True Application.Wait Now() + TimeValue("00:00:01") SendKeys "%u", True SendKeys "xxxxxxx", True 'ID SendKeys "{enter}", True SendKeys "%p", True SendKeys "xxxxxxxx", True 'PASSWORD SendKeys "{enter}", True SendKeys "%fc", True Application.EnableEvents = True Else MsgBox "xxxSVR接続に失敗しました。" & vbCrLf & "再度実行して下さい。" End If

  • wordマクロで検索⇒フォント変更したいが、結果がとびとびになります。

    MSwordのマクロについてです。マクロはど素人です。 「数式に使うa,b,n,p,q,r,t,u,v,w,x,y,zの文字を検索して、CMUserifというフォントに変え、サイズを2pt大きくする」 つもりで、以下のマクロを見よう見まねで作って実行したところ、うまく変更される文字とされない文字が混在してしまいます。 これはどのような理由によるもので、また、どのようにマクロを訂正すればよいのでしょうか。 --- Sub 数式用フォントに変更() Selection.StartOf wdStory With Selection.Find Do While .Execute(FindText:=\"[a-bn-np-rt-z]\", Forward:=True, Format:=False, MatchWildcards:=True, MatchSoundsLike:=False) = True With Selection Selection.Find.Execute Selection.Font.Name = \"CMU Serif\" Selection.Font.Size = Selection.Font.Size + 2 Selection.Find.ClearFormatting End With Loop End With End

  • Excel VBAを使って給紙方法を変更する(キーストローク使用)

    ExcelのVBAを使って印刷するものによって給紙方法を変えたいと思っています。 調べてみたところ'SendKeysステートメントを使うと設定できそうだったので、下記のような命令文を作ってみたのですがうまく動きません。 どなたか詳しい方いらっしゃいましたら教えていただけないでしょうか? OS:WindowsXP 使用ソフト:Microsoft Excel2003 使用プリンタ:NEC PR-2860N 【コマンドボタン】 本書印刷 → 印刷範囲:「一枚目」(あらかじめ設定してある名前)  給紙方法:自動  控え印刷 → 印刷範囲:「二枚目」        給紙方法:ホッパー2 Private Sub 控え印刷_Click() With ActiveSheet.PageSetup .PrintArea = "二枚目" End With MyPrinterSet ActiveSheet.PrintOut End Sub ―――――――――――――――――――――――――――――― Private Sub 本書印刷_Click() With ActiveSheet.PageSetup .PrintArea = "一枚目" End With MyPrinterSet2 ActiveSheet.PrintOut End Sub ――――――――――――――――――――――――――――――― Private Sub MyPrinterSet() 'SendKeysステートメントでプリンタ設定 '自動給紙から手差しへ変更 ActiveSheet.Select SendKeys "%FU"    'Excel画面でファイル(F)、ページ設定... SendKeys "%O"    ‘オプション SendKeys "{TAB 8}"  ‘一番端の[メイン]のタブに合わせる SendKeys "{RIGHT}" ‘一つ右の[用紙]タブへ移動 SendKeys "%S"    ‘給紙方法選択 SendKeys "{DOWN 2}" 'ホッパー2に設定 SendKeys "{ENTER}"  SendKeys "{TAB 5}" ‘[用紙]タブを選択 SendKeys "{LEFT}" ‘一つ左の[メイン]タブへ移動 SendKeys "{ENTER 2}"  ―――――――――――――――――――――――――――――― End Sub Private Sub MyPrinterSet2() 'SendKeysステートメントでプリンタ設定 '例、EPSON LP-****を手差しから自動へ変更 ActiveSheet.Select SendKeys "%FU" 'Excel画面でファイル(F)、ページ設定... SendKeys "%O" SendKeys "{TAB 4}" ‘初期値へ戻すを選ぶ SendKeys "{ENTER 4}"  End Sub ――――――――――――――――――――――――――――――

  • プログラム実行中に強制停止させる方法

    再び失礼します。 現在以下のようなソースコードを実行しています。 while true do print "commando?\n" command = gets if command == "end" then break end end ループから抜け出すために、getsメソッドを用いて、 endと入力されればループを抜けるという感じにしたいのですが うまく抜け出せず、無限ループに陥ってしまいます。 質問内容は、このように、getsメソッド実行中(?)にプログラムの強制停止を したいのですが、そのような方法はありますでしょうか。(例えばctrl+???とか) 実行環境は、terapadを使用してソースコードを書き、rubyコマンドプロンプトで rubyコマンドを使って実行しています。 それではよろしくお願いいします。 ※投稿確認したのですが、ソースコードにうまくインテンドが挿入されていません・・ 見づらくて申し訳ございません

    • ベストアンサー
    • Ruby
  • VBA 保存方法を教えて下さい

    Private Sub Workbook_BeforeClose(Cancel As Boolean) If MsgBox("×ボタンは使用できません。" & vbCr & _ "よろしいですか?", vbInformation + vbOKOnly) = vbOK Then Cancel = True End If End Sub 上記の様にEXCELワークブックに記述しましたが、 別に設置した「保存終了ボタン」で終了できなくなってしまいました。 Workbook_BeforeClose が邪魔しているようです。 どうすれば解決できるでしょうか? 「保存終了ボタン」に記述しているコードは下記です。 Sub 保存終了() ActiveWorkbook.Save CommandBars("Worksheet Menu Bar").Enabled = True Application.CommandBars("Standard").Visible = True Application.CommandBars("Formatting").Visible = True Application.CommandBars("Drawing").Visible = True With Application .DisplayFormulaBar = True .ShowWindowsInTaskbar = True End With Application.WindowState = xlMaximized Application.Quit MsgBox "終了します" End Sub 宜しくお願いします。

  • Wordの罫線「塗りつぶし」にキーを割り当てたい

    WindowsXP, Word2003を使用しています。 罫線の「塗りつぶし」機能を使って、 文書の所々に、赤を塗ったり・消したりという作業をしたいです。 作業が大量なので、マウスを使わずに、 罫線の塗りつぶしの「赤」と「なし」にキーを割り当てたいです。 蛍光ペン機能は塗り幅が太く、印刷時に見にくくなるので、 今回は罫線の塗りつぶしを使いたいです。 ツール>ユーザー設定>キーボード>罫線>ShadingColor に《Alt+1》という適当なコマンドを割り当て、 ツール>ユーザー設定>キーボード>罫線>Shading「なし」 に《Alt+2》を割り当ててみました。 そうしたところ、 罫線のツールバーで「赤」を選択していれば、 文字を選択して《Alt+1》で赤に塗れるのですが、 《Alt+2》を実行しても赤いままで、「塗りつぶしなし」に戻りません。 また、罫線のツールバーで「青」を選択した場合は、《Alt+1》で青になりますが、 《Alt+2》で色を消すことができません。 他方、 罫線のツールバーで「塗りつぶしなし」を選択すると、 今度は《Alt+1》でも《Alt+2》でも色がつきません。 結局、キーの割当てに関係なく、 罫線のツールバーで何を選択しているかに従ってしまいます。 そこで、「塗りつぶしなし」にキーを割り当てる方法が知りたいです。 なお、《Ctrl+z》で一つ前に戻れば「塗りつぶしなし」状態になれますが、 だいぶ前に作業した部分を訂正したいときは《Ctrl+z》は使えないので、 《Ctrl+z》という手段はナシでお願いします。 細かい質問ですが、Word通の方、アドバイスよろしくお願いいたします!

  • word2007 マクロ

    下記マクロは蛍光ペン部分を消して、その文字数分にアンダーラインを引くマクロになります これを改造して、赤文字を消して、その文字数分を空欄にしたいのです。 ですが、wdColorRedの入れ方が分かりません。ご教授お願いします。 Sub Problem() '蛍光ペン部分を消して、アンダーラインを引く Selection.Find.ClearFormatting Selection.Find.Highlight = True Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Highlight = False With Selection.Find.Replacement.Font .Underline = wdUnderlineSingle .StrikeThrough = False .DoubleStrikeThrough = False .Outline = False .Shadow = False .Hidden = False .AllCaps = False .Superscript = False .Subscript = False End With With Selection.Find .Text = "*" .Replacement.Text = " ^z" .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchFuzzy = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub

専門家に質問してみよう