Top > OOobbs > 15

OOobbs/15

  • サマリ: HyperLink を BASIC から設定
  • 環境: Calc
  • 状態: 解決
  • 投稿者: ?
  • 投稿日: 2004-05-29 (土) 20:10:18

質問

ローカルでディレクトリ内のファイル一覧をシートの各セルに書き出した後、そのファイルへのハイパーリンクを作成するまでを OpenOffice Basic で自動的に作成したいです。

Ocell.setHyperLink(ocell.string)

というような感じで一発でで設定できないのでしょうか? Writedbginfo(ocell) でセルの properties & method を 出してみましたが、 link 関係の文字が見つかりませんでした。

追伸 Excel だと find オブジェクトで下階層まで一発で 検索できますが OpenOffice だと自分で階層を動かなければ いけないので、またちょっと一苦労しています。

回答

すでに Cal Macro by Tamazo 氏 でディレクトリの検索が 実現されていました。

  • 上記の DirTools に Calc のハイパーリンクを作成する機能を付け加えればいいでしょうか?このような機能は最近,OOoBasic/Macros/DbgInfo2sheet に組み込んだのですが,結構簡単です。しかし,ファイルへのリンクになった場合には,どのアプリケーションで選択したファイルが開かれるのでしょうか?すこし試してみることにします。 また,URL を埋め込むには,com.sun.star.text.TextField.URL サービスを利用します。 あとでドキュメントを作成しておきます。 -- はにゃ?? 2004-05-30 (日) 01:21:42
  • OOoBasic/Calc/field のページに Calc でテキストフィールドのハイパーリンクフィールドを挿入することについてのドキュメントを作成しました。 -- はにゃ?? 2004-05-30 (日) 02:32:19

DirTools のファイル名の横にそのファイルへのハイパーリンクを挿入するように変更する方法を書いておきます。

まず,DirTools のファイルを開きます。そして,メニュー から 「ツール」 - 「マクロ」 - 「マクロ」 を選択します。DirTools ファイルの "Standard" ライブラリの "MainModule" を選択して,「編集」ボタンをクリックします。

つぎに,開いた IDE で,MainModule モジュールの 163 行目にある Sub DirFiles の中にすこしコードを追加します。

Sub DirFiles の 変数の宣言部分の最後に

Dim oLink As Object	'This line was added for hyperlink. May 30, 2004.
Dim oText As Object 'for hyperlink. May 30, 2004.

を付け加えます。Sub DirFiles の Dim ... の行の次の行に入れます。

そして,Do 文の中の

oCell.String = sValue

の次の行に

''begin for hyperlink. May 30, 2004.
oLink = oDocument.createInstance("com.sun.star.text.TextField.URL")
With oLink
  .URL = ConvertToURL(tmpPath & sValue)
  .Representation = "*"
End With
oText = oCell.getText() '
oText.insertString( oText.getEnd(), " ", false ) '
oText.insertTextContent( oText.createTextCursorByRange(oText.getEnd()), oLink, false ) '
''end for hyperlink. May 30, 2004.

を付け加えます。Do 文の 8 行目辺りです。

これで完成。

同じように実行すると,ファイル名の横に * マークが付きます。それがそのファイルへのハイパーリンクです。

  • 理解できました。ポイントは、 URL のリンクとなるオブジェクトを別途作る点、及びセルというかセル内テキストにそのオブジェクトを埋め込むという点ですね。 -- ? 2004-05-30 (日) 19:37:45
  • いつも勉強させてもらってます。 DirTools for Calc 作者の Tamazo です。このQAで2つ新たに発見しました。(1) Excel はセルにリンクを設定するイメージ(1セルに1リンク)ですが、 Calc はセル内に複数のリンクを設定できるんですね。 Excel だとリンクを設定したセルはどこを(文字の無い空白部分を)クリックしてもリンク先に飛んでしまう(選択だけしたいときは長めにクリックする)のですが、Calcだと文字部分をクリックしたときだけリンクに飛ぶので分かりやすいです。(2) Path だけをリンク先に設定するとエクスプローラが立ち上がりました。使えそうです。 -- Tamazo? 2004-06-01 (火) 16:03:52


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes