• ベストアンサー
  • 困ってます

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

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

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数1033
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.3

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

>コードがちゃんとEnd subで終わっているのにもかかわらず「End subが必要です」と出るのですね? そうなんです、確かに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 ================================================================ その記述に付け加える形になると思うのですが。 宜しくお願い致します。

  • VBマクロについて

    VBマクロについて 0864_001.xls 0864_002.xls … 0864_009.xls というxlsファイルがあります。 0864_001.xlsを開く→処理→閉じる→0864_002.xls→… のようなループを考え、matome.xls内で以下のようなマクロを作成したのですが実行されません。 Sub Test() Dim i As Integer For i = 1 To 9 Workbooks.Open ThisWorkbook.Path & "\0864_00" & CStr(i) & ".xls" Workbooks("\0864_00" & CStr(i) & ".xls").Activate Range("F1").Formula = "=max($B$11:$B$17)" Range("G1").Formula = "=max($B$391:$B$398)" Range("F1:G1").Copy Workbooks("matome.xls").Activate Sheet1.Activate Range("A" & CStr(i + 1)).PasteSpecial Paste:=xlPasteValues Workbooks("\0864_00" & CStr(i) & ".xls").Close SaveChanges:=False Next i End Sub 5行目でエラーが発生し、「インデックスが有効範囲にありません」とのメッセージが表示されます。 どのようにすれば実行されるのか教えていただきたいです。

その他の回答 (3)

  • 回答No.4

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

  • 回答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 まだ締め切られていませんが、何か不都合でもありましたか?

共感・感謝の気持ちを伝えよう!

質問者からの補足

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

関連するQ&A

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

    お世話になります。 マクロのボタン名を 別のファイルのセルの値に設定したいとおもい プログラムを組んでいるのですが、うまくいきません。 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 などといろいろ試しているのですが、 「インデックスが有効範囲にありません」 とエラーがかえってきます。 そもそもボタン等のプロパティにセットしようとしているのがいけないのでしょうか・・・。 どなたかご教授お願いします。

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

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

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

    以下のようなコードをツールバーのマクロから起動するようにするとできるのですがコマンドボタンから起動するようにするとエラーになります。なぜでしょうか? 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

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

    こんにちは。 たくさんあるファイルを一つのファイルにシート別にまとめるマクロを作成しました。 毎月同じことをするので、マクロボタンを作成したところ、作成したつきのボタンは正常に作動しますが、このシートを新しい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マクロを無効にして開く方法

    掲題の通りなのですが、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 上記の特定セルに設定してあるファイルパスを変更するためには マクロを無効にして開かなければなりません。 マクロのセキュリティを変更して、「すべてのマクロを無効にする」を設定して 該当のファイルを開けば良い事は分かっているのですが、他に分かりやすい方法で マクロ無効状態で開く方法があれば、ご教授頂ければと思います。

  • 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

  • マクロの条件を追加したいのですが

    いつもお世話になります、MEGUMIと申します。 既存のマクロに更に条件を追加したいという質問をさせてください。 現在、フォルダの中にある全てのエクセルファイルを下記のような処理をしています。 ●エクセルファイルの中の全てのSheetの1行目以降のA,B,C,G,H列をコピーしてマクロを動作させるエクセルファイルのSheet1に順次(A,B,C,D,E列)ペースト  ※マクロは下記の内容( Sub 今日のわたし()以降です )です。 これに下記のような条件を追加したいのですがどのようにすればいいでしょうか? ○I列に”元気”という文字が存在していた場合に限って、その列のA,B,C,G,H,I列をコピーしてマクロを動作させるエクセルファイルのSheet1に順次(A,B,C,D,E,F列)ペースト お忙しいところ大変恐れ入りますがもしご存知の方がいらっしゃりましたらご指導のほど何卒宜しくお願いいたします。 Sub 今日のわたし() Dim XlFile As String Dim MotoDataLastRow As Long Dim CopySakiLastRow As Long ThisWorkbook.Activate Worksheets(1).Select Cells.Clear XlFile = Dir(ThisWorkbook.Path & "\*.xls?") Do While XlFile <> "" If XlFile <> ThisWorkbook.Name Then Workbooks.Open ThisWorkbook.Path & "\" & XlFile, ReadOnly:=True Worksheets(1).Select MotoDataLastRow = Workbooks(XlFile).Worksheets(1).[A65536:H65536].End(xlUp).Row '元データファイルの最終行を取得 CopySakiLastRow = ThisWorkbook.Worksheets(1).[A65536:E65536].End(xlUp).Row 'インポート先の最終行を取得 If MotoDataLastRow > 1 Then Range([A2], Cells(MotoDataLastRow, "C")).Copy ThisWorkbook.Worksheets(1).Cells(CopySakiLastRow + 1, "A") Range([G2], Cells(MotoDataLastRow, "H")).Copy ThisWorkbook.Worksheets(1).Cells(CopySakiLastRow + 1, "D") End If Workbooks(XlFile).Close False End If XlFile = Dir() Loop 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のマクロで相対パスでファイルを開く

    Excelでマクロを使って他のブックを開こうとしています。 同じフォルダ内のブックを開くには Workbooks.Open Filename:=ThisWorkbook.Path & "\ブック名.xls" で開く事が出来たのですが、一つ上の階層にあるブックを開きたいときはどのようなコマンドを使えば良いのでしょうか?? お教え下さい。

  • シートの移動ボタン(エクセルVBA)

    表示するSheetを変えるボタンを作っています。宜しくお願いします。 ファイル(1)のSheet1~Sheet5 と Sheet7 のそれぞれのシートにSheet6へ行くボタンを作っています。 「WorkSheets("Sheet6").Activate」でしています。 で、Sheet6には戻るボタンを作りたいのですが、どこのシートから来たのかを認識して、該当シートへ戻るようにしたいのですがどのようにしたらよいでしょうか?(シート6へ行くボタンを押したシートに戻る) 更に、同様の処理が、WorkBook間でも処理ができるようにしたいのです。 ここは、「WorkBooks(ファイル(2).Xls)WorkSheets(”Sheet1”).Activate」をファイル(1)の各シートに書いて処理させています。ここから戻るボタンの方法もお願いします。 宜しくお願いします。