calcマクロでのハイパーリンク参照について †
ページ | OpenOffice.org FAQの登録ページ |
---|---|
投稿者 | ほりわり |
分類 | |
優先順位 | |
状態 | |
カテゴリー | |
投稿日 | 2009-11-05 01:23:23 (木) |
OS | Windows vista |
依存するページ | |
バージョン |
メッセージ †
回答ページでは行末に「~」を付加する必要はありません |
セル内のテキストにURLアドレスをハイパーリンク設定した場合、マクロでそのセルに移動しリンク先のURLページを開きたいのですが、どのように記述すればよろしいでしょうか。
無題 †
ike@九州 (2009-11-05 10:19:02 (木))
挿入>ハイパーリンク の場合です
Sub Main() On Error Goto ErrorHandler oDoc = ThisComponent oSheet = oDoc.getSheets().getByName("Sheet1") oCell = oSheet.getCellRangeByName("A1") 'getCellByPosition(0,0) 'セルに移動する場合は以下コメント解除 'oController = oDoc.getCurrentController() 'oController.select(oCell) If oCell.Textfields.count > 0 then sURL = oCell.Textfields.getByIndex(0).URL oSystemShellExecute = createUnoService(_ "com.sun.star.system.SystemShellExecute") oSystemShellExecute.execute(sURL, "", 0) End if ErrorHandler: End Sub
質問が適切ではなかったので、再質問です †
ほりわり (2009-11-06 05:07:41 (金))
ike@九州様ご回答ありがとうございます。
初心者なので質問が適切でなかったようです。申し訳ありません。
知りたいことを具体的に書きます。
Excelで作成したファイルをcalcで開いています。
現在のセル位置から一列下のセルに移動し、そのセルにハイパーリンクで設定されたURLページを開くという動作をマクロで実行したいのですが、Excelのマクロを読み込んだときに下記の2行目で
「BASICランタイムエラー.プロパティーまたはメソッドが見つかりません。」
というエラーが表示されます。
どのようにすれば正常に動くでしょうか。
ActiveCell.Offset(1, 0).Range("A1").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
以下では? †
ike@九州 (2009-11-06 08:39:15 (金))
現状VBAの5割程度しか認識内部変換されません。
書き直した場合、Excel上で実行するとエラーとなりますのでご注意下さい
ActiveCell.Offset(1, 0).Range("A1").Select oActiveSheet = ThisComponent.CurrentController.getActiveSheet() oSelection = oActiveSheet.getCellRangeByName(Selection.Address) If oSelection.Textfields.count > 0 then sURL = oSelection.Textfields.getByIndex(0).URL oSystemShellExecute = createUnoService(_ "com.sun.star.system.SystemShellExecute") oSystemShellExecute.execute(sURL, "", 0) End if
無題 †
tani (2009-11-06 10:34:12 (金))
HyperlinksというメソッドがOOo側ではダメなようなので、ExcelとCalcの相互運用を目指すなら
Hyperlinksを使わないように工夫して修正したら良いと思います。
例えば目的のセルにもう文字列としてURLが入っているのであれば、
ActiveCell.Offset(1, 0).Range("A1").Select Shell("EXPLORER.EXE " & Selection.Value)
というように"Excel側で"修正してやれば、Excel, Calc両方で動くんじゃないでしょうか。
(試してないので想像です)
無題 †
ほりわり (2009-11-10 03:11:04 (火))
回答ありがとうございます。
ike@九州様の回答でOOoでは実行できることが確認できましたので、完了とさせていただきます。