「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:2
総数:2411
現在:2


calcマクロでのハイパーリンク参照について

ページOpenOffice.org FAQの登録ページ
投稿者ほりわり
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2009-11-05 01:23:23 (木)
OSWindows vista
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

セル内のテキストに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では実行できることが確認できましたので、完了とさせていただきます。

お名前:
題名: