- 締切済み
セルの属性を変えずに
セル間で値を渡すには、どうしたらよいでしょうか。 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) このように記述すると、ハイパーリンクが外れてしまうのです。 ハイパーリンク有りのまま、値を移すにはどうすればよいでしょうか? アドバイスをお願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- uissst
- ベストアンサー率41% (7/17)
要素を抽出して加えてあげればいいのですが 例:シート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) は参照設定ですのでマクロでは使用できないと思います。
- NCU
- ベストアンサー率10% (32/318)
Excel2002, Win XPで試したところ、セルの値は変わりますが、ハイパーリンクは生きています。
補足
EXCEL2003なのですが、記述の仕方が異なるのでしょうか。ハイパーリンクが死んでいます。
- sakemoni1008
- ベストアンサー率31% (317/992)
見当違いかも知れませんが、コピーするだけなら コピー→相手セルで右クリック→形式を選択して貼り付け→ 罫線を除くすべてを選択してOKでどうでしょうか?
補足
どうもありがとうございます。 複数行あるため、マクロに実行させたいと考えています。
- shabushabu
- ベストアンサー率35% (20/57)
B1に=HYPERLINK(A2) C1に=HYPERLINK(A3) と入力すればハイパーリンクごとコピーできますよ。
補足
cells(○、○)をHYPERLINKrange("A" & 変数)にすればよいということでしょうか。 マクロを実行するとHYPERLINKのところでとまり、SUB、Functionが定義されていませんと表示されます。なぜでしょうか。
- uissst
- ベストアンサー率41% (7/17)
動作は遅くなりますがコピーじゃだめでしょうか 例セルa1をa2に Cells(1, 1).Copy Destination:=Cells(2, 1)
補足
どうもありがとうございます。 やはり、コピーしか方法はないのでしょうか。
お礼
感激です☆ ありがとうごいます。早速ためします。