• 締切済み

セルの属性を変えずに

セル間で値を渡すには、どうしたらよいでしょうか。  A列  B列   C列 1    ○1   ○2 2 ●1 3 ●2 A列2行に、http://×××.html(ハイパーリンクの有り) A列3行に、http://×××.html(ハイパーリンクの有り) B列1行、B列2行に移したいのです。 Cells(2, 1) = Cells(1, 2) Cells(3, 1) = Cells(1, 3) このように記述すると、ハイパーリンクが外れてしまうのです。 ハイパーリンク有りのまま、値を移すにはどうすればよいでしょうか? アドバイスをお願いいたします。

みんなの回答

  • uissst
  • ベストアンサー率41% (7/17)
回答No.5

要素を抽出して加えてあげればいいのですが 例:シート1のセルA1のハイパーリンクをシート1のA2に設定する Worksheets(1).Hyperlinks.Add Cells(2, 1), Worksheets(1).Range("a1").Hyperlinks.Item(1).Address 当然文字列は設定されませんのであらかじめ設定しておくことが必要です。 それとおそらくハイパーリンクが設定されていないセルを参照するとエラーを起こすと思いますのでエラー処理してあげるか、事前にハイパーリンクがあるか判定してあげる必要があります。 あと蛇足ですがNo2さんの回答の B1に=HYPERLINK(A2) C1に=HYPERLINK(A3) は参照設定ですのでマクロでは使用できないと思います。

yokoneco
質問者

お礼

感激です☆ ありがとうごいます。早速ためします。

  • NCU
  • ベストアンサー率10% (32/318)
回答No.4

Excel2002, Win XPで試したところ、セルの値は変わりますが、ハイパーリンクは生きています。

yokoneco
質問者

補足

EXCEL2003なのですが、記述の仕方が異なるのでしょうか。ハイパーリンクが死んでいます。

回答No.3

見当違いかも知れませんが、コピーするだけなら コピー→相手セルで右クリック→形式を選択して貼り付け→ 罫線を除くすべてを選択してOKでどうでしょうか?

yokoneco
質問者

補足

どうもありがとうございます。 複数行あるため、マクロに実行させたいと考えています。

回答No.2

B1に=HYPERLINK(A2) C1に=HYPERLINK(A3) と入力すればハイパーリンクごとコピーできますよ。

yokoneco
質問者

補足

cells(○、○)をHYPERLINKrange("A" & 変数)にすればよいということでしょうか。 マクロを実行するとHYPERLINKのところでとまり、SUB、Functionが定義されていませんと表示されます。なぜでしょうか。

  • uissst
  • ベストアンサー率41% (7/17)
回答No.1

動作は遅くなりますがコピーじゃだめでしょうか 例セルa1をa2に Cells(1, 1).Copy Destination:=Cells(2, 1)

yokoneco
質問者

補足

どうもありがとうございます。 やはり、コピーしか方法はないのでしょうか。

関連するQ&A

専門家に質問してみよう