0

WIN32OLE を使用して、さまざまな状態のデータ ファイルを読み取っています。現在、Sentences および Shapes メソッドを使用して大部分のファイルからテキストを読み取ることができましたが、ハイパーリンクを含むファイルの場合、基になる URL ではなく、ハイパーリンク テキストのみを読み取ることができます。

私は「ハイパーリンク」のメソッド/ole_methods を掘り下げて、多くのことを試しましたが、テキスト以外のハイパーリンクのプロパティを解放したものはありません (場合によっては適切に)。

irb(main):084:0> doc.Sentences(4).hyperlinks.inspect
=> "#<WIN32OLE:0x2c233d0>"

irb(main):085:0> doc.Sentences(4).hyperlinks.text
=> "Hi I'm a link!"

最も関連性の高い Google の結果は、ハイパーリンクの方法ではない「アドレス」タグを使用して、Excel にリンクを追加することを扱っています。他の人は「アクション」を参照していますが、これもメソッドではないようです。

4

2 に答える 2

2

これは私のために働く:

doc.Hyperlinks.each do |x|
  puts x.Address
end

編集: TextBoxes からもリンクを取得するためにこれを機能させました。

doc.Shapes.each do |x|
  x.TextFrame.TextRange.Hyperlinks.each do |i|
    puts i.Address
  end
end

これらはどちらも、表示テキストに関係なく、完全なアドレスを示します。

于 2010-12-16T21:45:56.270 に答える
1

HyperLinks オブジェクトは、HyperLink オブジェクトのコレクションです。

それぞれに、リンクの URL を指す「Address」プロパティと「textToDisplay」プロパティが含まれています。

ruby や win32ole lib については何も知りませんが、コレクション内の Hyperlink オブジェクトにアクセスできますか? おそらく次のようになります。

irb(main):084:0> doc.Sentences(4).hyperlinks(1).TextToDisplay

irb(main):084:0> doc.Sentences(4).hyperlinks(1).Address
于 2010-12-16T21:45:06.643 に答える