• ベストアンサー

excelマクロボタンのリンク先の表示方法

よろしくお願いします。 excel2010にてマクロボタンを設定し、特定のsheetに飛ぶよう設定しました。 ●そのボタンにマウスポインタを持って行った際にリンク先が表示されるように  することは可能でしょうか? ●このボタンをクリックしたらどこへ飛ぶか、というのがわかるようにしたいの  ですが、良い方法がありましたら教えてください。 お願いいたします。 Sub マクロ名() Workbooks.Open ThisWorkbook.Path & "\ファイル名.xls" Worksheets("シート名").Activate End Sub

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> いろいろ試みてみましたがどうやっても「End subが必要です」と出てしまいます・・・ コードがちゃんとEnd subで終わっているのにもかかわらず「End subが必要です」と出るのですね? ならば書いたコードに文法上のエラーがあると思います。 ただ、飛ぶ先のシート名をユーザーに知らせる目的なら、ANo2さんがおっしゃるようにボタンの名前をシート名にした方が簡単だと思いますよ。

sei_s95
質問者

お礼

>コードがちゃんとEnd subで終わっているのにもかかわらず「End subが必要です」と出るのですね? そうなんです、確かにEnd subで終わらせています。 それでも、どう工夫しても必要です、と出てしまいます>< 私も、ボタンをシート名にした方がシンプルでいいような気がしてきました。 そうしてみて上司に報告してみようと思います。

その他の回答 (3)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

> そうなんです、確かにEnd subで終わらせています。 > それでも、どう工夫しても必要です、と出てしまいます>< もし提示してさしつかえなかったら見せてもらえますか? アドバイスできるかも知れません。

sei_s95
質問者

お礼

お申し出ありがとうございます。 せっかくお申し出いただいたのですが、今日になって指示が二転三転し 全体を見直さなければならなくなりました>< 何度も確認してるのに今更・・・(すみません、愚痴っぽくて) 本当に申し訳ありません。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

特定のBookを開き特定のシートに飛ぶ..程度ならマクロを使わない方が良策です。 四角形のオートシェイプをボタンのようにアレンジして、ハイパーリンクを挿入するだけです。 ハイパーリンクアドレスは、例えば、ThisWorkbook.Pathの場合 ファイル名.xls#シート名!A1 などとすれば良いです。 マクロボタンで対応したい場合は、 ボタンキャプションにファイル名を入力しておけば、より親切なような気もしますが。 それに、既に開いている場合の対処もマクロ内に組み込んであげてください。

sei_s95
質問者

お礼

ご回答ありがとうございます! 私も本当はマクロなんんて組まずにやった方がみんなも使いやすいと 上司に進言したのですが・・・ どうもマクロへの憧れ?とでもいいますか、マクロ前提で作成しろとの 依頼なんです。 ボタンにファイル名、シンプルでいいですね。 この方法で報告してみようと思います。 ありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

フォームでなくコントロールツールのコマンドボタンなら Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)   If MsgBox("○○へ飛びます。", vbOKCancel) = vbOK Then     Call ○○へ飛ぶマクロ   End If End Sub で、いかがですか? ところでsei_s95さん、ずいぶん前に回答したこれ↓ http://okwave.jp/qa/q6757729.html まだ締め切られていませんが、何か不都合でもありましたか?

sei_s95
質問者

補足

以前の質問、申し訳ありません、お礼を書いて締切漏らしてました>< お陰様で無事に完成させることができました。ありがとうございました。 そして、今回もありがとうございます。 いろいろ試みてみましたがどうやっても「End subが必要です」と出てしまいます・・・

関連するQ&A

  • エクセルVBAでパスの¥マークについて

    このマクロを記述したBOOKと同じフォルダー内にある、シート001.xls を開くマクロです。 同一フォルダーにあるのですから、このような記述になると思います。 Sub kakunin1() Workbooks.Open (ThisWorkbook.Path & "\" & "シート001.xls") End Sub しかし、以下の3つはすべてシート001.xls を開くことができました。 Sub kakunin2() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "シート001.xls") End Sub Sub kakunin3() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "シート001.xls") End Sub Sub kakunin4() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "\" & "\" & "\" & "シート001.xls") End Sub パスの¥マークは階層をあらわすのだと思っていましたがいくつ重ねてもなぜ開くのでしょうか?非常に初歩的な質問だと思いますが、ご教示いただければ幸いです。

  • 【Excel】「リンクを更新する」のダイアログを表示させないようにするには

    教えて下さい! AAA.xlsとBBB.xlsというファイルがあります。 AAA.xlsを開くと自動的にBBB.xlsが開くようになっています。 BBB.xlsにはグラフがあり、AAA.xlsからデータを読んでいるため「リンクを更新しますか?」というダイアログが表示されてしまいます。 これを表示させないようにするにはどういう記述をしたらよろしいでしょうか? AAA.xlsを開く際にBBB.xlsも開くように、AAA.xlsに以下のように記述してあります。 ================================================================ Sub Auto_open() Workbooks.Open Filename:=ThisWorkbook.Path & ("\BBB.xls") Workbooks("AAA.xls").Worksheets("Sheet1").Activate End Sub ================================================================ その記述に付け加える形になると思うのですが。 宜しくお願い致します。

  • セルの文字をマクロの一文に反映させる方法

    マクロ初心者になりますが、よろしくお願いします。 今、一つのエクセルで、顧客を管理していて、別のシートで 各顧客のカルテを作成しているのですが、 顧客管理しているエクセルで、検索をして、カルテ番号を出せるようにしてます。 同じシートでカルテ番号を入力すると、別のエクセル(カルテ) が開くようにしたいのですが、どのようにすればよいでしょうか? 私なりにマクロボタンを設定して開くまではきているのですが、 セルの文字を反映してできるようにしたいです。 利用しているマクロ Sub Auto_Open Workbooks.Open ThisWorkbook.Path & "\ファイル名.xlsx" End Sub このマクロのファイル名を Sub Auto_Open Workbooks.Open ThisWorkbook.Path & "\●●●.xlsx" End Sub ●●●のところをセルで記入した文字に変えることはできませんか? そうすると、カルテ番号を記入後、開くようにしたいです。 入力は、半角の数字で入力予定です。 利用しているソフトはオフィス2007です。

  • マクロのボタン名設定方法

    お世話になります。 マクロのボタン名を 別のファイルのセルの値に設定したいとおもい プログラムを組んでいるのですが、うまくいきません。 CommandButton1をクリックしCommandButton2へ表示 Private Sub CommandButton1_Click() Workbooks("c:\file.xls").Worksheets("Sheet1").Range("A1").Copy Worksheets("Sheet1").CommandButton2.Caption End Sub や Private Sub CommandButton1_Click() Worksheets("Sheet1").CommandButton2.Caption = _ Application.ExecuteExcel4Macro("'C:\[file.xls]Sheet1'!" & Cells(1,1 ).Address(, , xlR1C1)) End Sub などといろいろ試しているのですが、 「インデックスが有効範囲にありません」 とエラーがかえってきます。 そもそもボタン等のプロパティにセットしようとしているのがいけないのでしょうか・・・。 どなたかご教授お願いします。

  • Excelマクロの自動実行で新規ブックを保存せずに表示したい

    以下のようなマクロを作成しました。 これを、TEST.xls として保存し、サーバに登録しました。 これをwebサイトで <a href="TEST.xls">実行する</a> のようにして ダウンロードし実行しても、strNEWBKNM が表示されずに終了してしまいます。 auto_open をやめて、ダウンロード後に「ツール」→「マクロ」でマクロを実行すると strNEWBKNM が表示された状態で終了するのですが、 auto_open でも strNEWBKNM が表示された状態で終わらせたいです。 (保存はしたくありません。あくまで表示で終わらせたいです) どのようにしたらよいか、お分かりになる方がいらっしゃいましたら 教えてください。よろしくお願いします。 Sub auto_open() Dim strWKBKNM As String 'このブック名 Dim strNEWBKNM As String '新しいブック名 strWKBKNM = ThisWorkbook.Name '*** このブックの名前を設定 Workbooks.Add '*** 新しいブックを追加 strNEWBKNM = ActiveWorkbook.Name '*** 新しいブックの名前を設定 Sheets("Sheet1").Activate Range("A1") = "aaaaaa" Workbooks(strNEWBKNM).Activate Workbooks(strWKBKNM).Close SaveChanges:=False End Sub

  • マクロボタンのシートをコピーしたいのですが。。。

    こんにちは。 たくさんあるファイルを一つのファイルにシート別にまとめるマクロを作成しました。 毎月同じことをするので、マクロボタンを作成したところ、作成したつきのボタンは正常に作動しますが、このシートを新しいBOOKにコピーして翌月分を作成したところ、マクロが消えてしまい、実行されません。 毎月のことなので、いちいち『前月のマクロをコピーして実行』などしないで、このボタンをコピーすればあとは押すだけ♪なんていう風にうまくいかないものでしょうか? かなり初心者な者で、上手な説明が出来ず申し訳ございません。 Sub 精算用5月() Dim fs As Variant Dim s As Variant Dim w As Workbook fs = Application.GetOpenFilename(Title:="select xls(s)", MultiSelect:=True) If Not IsArray(fs) Then Exit Sub For Each s In fs Set w = Workbooks.Open(Filename:=s) w.Worksheets(1).Copy after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count) ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = Application.Substitute(w.Name, ".xls", "") w.Close savechanges:=False Next Worksheets(1).Range("A1").Formula = "=SUM(" & Worksheets(2).Name & ":" & Worksheets(Worksheets.Count).Name & "!A1)" End Sub 上記のマクロでボタンを作成しました。 よろしくお願いいたします。

  • EXCEL マクロ 

    お世話になります。 マクロは初心者です。 セルの数値を参照して、シートをアクティブにしたいのですが 下記のような繰り返しでシートが30ぐらいあるので、簡単な 表現に出来ないでしょうか。 宜しくお願いします。 Private Sub Workbook_Open() If 0 <= Worksheets(4).Range("M1") < 7 Then Worksheets(4).Activate End If If 0 <= Worksheets(5).Range("M1") < 7 Then Worksheets(5).Activate End If If 0 <= Worksheets(6).Range("M1") < 7 Then Worksheets(6).Activate End If If 0 <= Worksheets(7).Range("M1") < 7 Then Worksheets(7).Activate End If If 0 <= Worksheets(8).Range("M1") < 7 Then Worksheets(8).Activate End If If 0 <= Worksheets(9).Range("M1") < 7 Then Worksheets(9).Activate End If End Sub

  • Excelマクロのエラー

    お世話になります。 マクロは、超初心者で只今、本やネットで勉強中なのですが、本の通りに作成しましたが、 エラーが出てしまいます。 急いでおりまして、大変お手数ですがご教示お願いできますでしょうか? Excel2007でマクロを作成中(実際に業務で使用する環境は2003です)。 2点あります。 (1)サブフォルダ内の全ブックを開く  ファイルは開くのですが、下記のエラーが出てしまいます。  C:¥...... "\web保存\"が見つかりません。ファイル名およびファイルの保存場所が  正しいかどうかを確認してください。 (2)開いたファイルをhtm保存する。  htm保存できるのですが、ファイル名が「●●●.xls.htm」  となってしまい、元のファイル名の.xlsの拡張子が付いたままです。  ファイル名を変えず、「●●●.htm」となるようにしたいです。 どうぞ宜しくお願い致します。 (1)サブフォルダ内の全ブックを開く Sub 全ブックを開く() Dim パス名 As String Dim ファイル名 As String パス名 = ThisWorkbook.Path & "\web保存\" ファイル名 = Dir(パス名 & "*.xls*") Do While ファイル名 <> " " Workbooks.Open パス名 & ファイル名 ファイル名 = Dir() Loop End Sub (2)開いたファイルをhtm保存する Sub htm保存() Dim wb As Workbook Dim wbname As String For Each wb In Workbooks wb.Activate If wb.Name <> ThisWorkbook.Name Then wb.SaveAs FileName:=ThisWorkbook.Path & "\" & wb.Name & ".htm", FileFormat:=xlHtml, CreateBackup:=False wb.Close savechanges:=False End If Next End Sub

  • EXCELマクロを無効にして開く方法

    掲題の通りなのですが、EXCEL2007で作成されたマクロ有効ファイル(XLSM形式)を マクロ無効の状態で開く方法が分からず困っております。 マクロの内容は Workbook_Open 処理で、特定セルに入力されている EXCELファイルを開き、自身は閉じるというものです。 Private Sub Workbook_Open() Dim FileName As String '1ファイル目 Range("A2").Select FileName = ActiveCell.FormulaR1C1 Workbooks.Open FileName:=FileName ThisWorkbook.Activate '2ファイル目 Range("A3").Select FileName = ActiveCell.FormulaR1C1 Workbooks.Open FileName:=FileName ThisWorkbook.Activate ・・・・・・繰り返し DoEvents ThisWorkbook.Close End Sub 上記の特定セルに設定してあるファイルパスを変更するためには マクロを無効にして開かなければなりません。 マクロのセキュリティを変更して、「すべてのマクロを無効にする」を設定して 該当のファイルを開けば良い事は分かっているのですが、他に分かりやすい方法で マクロ無効状態で開く方法があれば、ご教授頂ければと思います。

  • コマンドボタンでマクロを起動するとエラーになる

    以下のようなコードをツールバーのマクロから起動するようにするとできるのですがコマンドボタンから起動するようにするとエラーになります。なぜでしょうか? Private Sub CommandButton1_Click() Application.ScreenUpdating = False Workbooks.Open "C:\My Documents\b.xls" Windows("b.xls").Activate Columns("A:C").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Workbooks("a.xls").Sheets("Sheet2").Range"A1:A3"), CopyToRange:=Columns("E:G"), Unique:=True ~ここでエラー'1004'~ Windows("a.xls").Activate Workbooks("C:\My Documents\b.xls").Close Application.ScreenUpdating = True End Sub

専門家に質問してみよう