• ベストアンサー

エクセルのマクロで自動的にハイパーリンクしたいです

OrangeCup150の回答

回答No.4

すみません。字数制限のため連投します。 ' オブジェクトがワークシートオブジェクトであるかを検査します。 ' 以下のような検査を行う ' Not obj Is Nothing And TypeName(obj) = "Worksheet" And obj.Type = xlWorksheet ' 1. Nothing でないこと ' 2. TypeName 関数が "Worksheet" を返すこと ' 3. Type プロパティを持ち xlWorksheet であること Function isWorksheet(obj As Object) As Boolean On Error GoTo ErrorHandler isWorksheet = False If Not obj Is Nothing Then If TypeName(obj) = "Worksheet" Then If obj.Type = xlWorksheet Then isWorksheet = True End If End If End If ErrorHandler: End Function 大体、マクロの手続きとコールバック関数の組で処理の本質が記述できるようになったので個人的には満足です。 (関数名などは微妙ですが、類似した機能を20個ほど作っても保守しやすくなったかなと) んー。見直して気づいたけど検索結果(Rangeオブジェクト)を配列かコレクションのようなもので返した方が単純ですね(^^;) 処理対象の件数が非常に多いなら処理を途中で中止できるコールバック方式の方が優位ですが・・・。 あと、清書ができていないので読みづらくてすみません。 細かい説明はヘルプの下のリファレンスを参照して下さい。 ○ Excel 2007 開発者用リファレンス > リファレンス > Range オブジェクト Range.Find メソッドを確認して下さい ○ Excel 2007 開発者用リファレンス > リファレンス > Application オブジェクト Application.Run メソッドを確認して下さい ○ Excel 2007 開発者用リファレンス > リファレンス > Worksheet オブジェクト Worksheet.Hyperlinks プロパティを確認して下さい ハイパーリンクの設定はワークシートオブジェクトのプロパティとして保持されています。 つまり、ワークシート単位に保持されています。 ○ Excel 2007 開発者用リファレンス > リファレンス > Hyperlinks オブジェクト Add メソッドを確認して下さい

kyaravan1
質問者

お礼

まとめてお礼をさせていただきます。ちょっと私にはレベルが 高いですが、なんとかチャレンジさせていただきます。 できるまで、すこしお時間をください。

関連するQ&A

  • エクセルのマクロについて

    お世話になります。エクセル2007のマクロについてですが、「A」というBOOKがありその中の任意のセルをクリックするとハイパーリンクで「B」というBOOKが開くようになっています。 ここで「B」が開いた時点で自動的に「A」を保存しないで終了させたいのですが、マクロの組み方がわかりません。 Sub Sample1() Workbooks("BookA.xlsx").Close End Sub と記述するとBook Aが閉じるのは調べてわかったのですが、ハイパーリンクでBが開いた時点でこのマクロを動かすようにするにはどうしたらいいのでしょうか?何か別の方法があるのでしょうか? 宜しくお願いします。

  • Excel シートを追加したら別ブックへ自動的に反映したい

    具体的には、追加したシート名を別ブックの一覧表の特定セルへ自動反映させたのです。シートが追加される度に、一覧表へ反映されていく・・・というのが希望です。 関数で可能でしょうか?マクロはよく分からないのですが・・・。お知恵をお貸し下さい!よろしくお願い致します。

  • Excelのマクロ初心者です

    Excelのマクロ初心者です 同じBookでセルA1に”1”が入力されているSheetのみ全て印刷する マクロを教えてください!

  • マクロの自動実行などについて

    エクセル2003のVBAマクロについて質問です あるワークシートに値が入力されたら、マクロを自動実行するように出来ないでしょうか? 又、そのセルの値を別のセルにコピーしたいのですが、データを入力する度にセルの場所が ひとつ下へずれます。この最終列のセルの値を必ず拾うようにするにはどうすればよいでしょうか? ややこしくてすいません

  • エクセルのマクロで困ってます

    エクセルのマクロで困ってます エクセル2000や2003上でマクロを使って、シート上に入力してあるハイパーリンク貼り付けしたエクセルファイルやワードファイルを上から順番に開いて、印刷しようとしています。 このとき、エクセルかワードかのファイルによってマクロの内容が違ってくるみたいですが、アクティブファイルがエクセルなのかワードなのかIF文で分岐させたいと思っています。どのようにマクロを書いたらいいのでしょうか。

  • excel マクロコードを教えていただきたいです

    マクロを使うのが初心者のため、詳しい方に以下のマクロ コードを教えていただきたいです。 ある表の一番右の列にハイパーリンクが並んでいます。 そのハイパーリンクにて、各Bookファイルが開くのですが ハイパーリンクを一回押すことで、その一行(数セル)を、 開いた別ファイルのsheet内に貼り付けたいです。 今は方法がわからないため、ハイパーリンクにてファイル だけ開き、表の一行をコピーして、そのファイル内に貼り 付けています。 すみませんがわかる方教えていただきたいです。よろしく お願いします。

  • Excelのリンクを解除したい。

    Excelにて、別のブックから一覧表のデータがあるシートを 新ブックに丸々移動させてきたのですが、 そのシートが別のブック内の別シートにリンクしていたようで、 新ブックの表の入力が完了し保存して、再度開いたときに 『他のデータソースへリンクしています。 更新しますか。』 というメッセージが出てきます。 取り合えず更新せずに、リンクしているセルがどれなのか 1つずつ矢印で送りながら探していったところ、 いくつかは見つけて関数を書き換えたのですが まだ、『更新しますか』のメッセージが出ます。 しかし、それ以上はリンクしたセルを見つけられませんでした。 そのリンクしたセルを探し出し、 関数を書き換えて、メッセージを出なくしたいのですが 何か良い方法はないでしょうか?

  • 離れたセルのリンク貼り付けを行うためのマクロについて

    ブック(1)のシート(1)にある複数の離れたセル(B2,D2,C3,F3,B4:F4)をコピーし、別ブックのシート(1)のセル(B2,D2,C3,F3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。 なお、ブック(1)とブック(2)はイントラの共有フォルダ上の同一階層に置いてあります。 このブック(1)と同一フォーマットのブックが複数存在し、上記同様にブック(2)の離れたセルをコピーして別ブックのシート(2)のセルへリンク貼り付け。 続いて、ブック(3)の同じセルをコピーし別ブックのシート(3)へリンク貼り付けと言うように、同じセルをコピーし別シートの同じセルへリンク貼り付けの作業を繰り返し行います。 まったく同じ位置のセルをコピー&リンク貼り付けを繰り返し行いたいので、マクロを使って自動実行させたいと思っています。 離れたセルのリンク貼り付けは出来ないのかもしれないですが、アドバイスを頂けると助かります。 宜しくお願い致します。

  • エクセルのブックを開いた時にマクロを自動定期に実行したいのですが。

    エクセル97でブックを開いたときに、自動的にマクロを実行させたいのですが、どのようにマクロを記述すればいいのか教えて頂けませんか。 sub autorun() sheets(2).select sheets(1).cells(2,2)=cells(5,5) end sub のように、シート2のある数値をシート1のセルに自動的に貼付したいのですが。 このマクロは自動的には実行されませんので、どうすれば自動的に実行するようにできるのかが知りたいのですが。 よろしくお願いします。

  • Excelのマクロについて

    マクロの保存先を「開いているすべてのブック」にして、 A2~A32をいったん削除した後で、 1月1日から、1月31日を入力して、 最後にA2をアクティブセルにしておく、というマクロを作りました。 1/1と入力すると、普通、1月1日と表示されますよね? 同一ブック、同一シートないでしたら、そのように表示されるのですが、 同一ブック、別シートあるいは、 別ブックで、このマクロを実行すると、 2001/1/1と表示されます。 あとで、セルの表示形式を変えればいいんでしょうが、 この原因が、なぜ、そうなるのかが知りたいです。 (まだ、そのシート内以外だと、マクロが設定できない、 とかの方がわかるんですが。) また、 同一シートでなくても、 1月1日~1月31日の表示形式のままで、 設定できるマクロがあったら、あわせて教えてください。 作成しているファイルの、 バージョンは、Excel2002ですが、 マクロは、2000と変わらないと思うんですが・・・。 よろしくお願いいたします。