
やっかいな質問で申し訳ないのですが、ハイパーリンク関数 =HYPERLINK(リンク先,表示名)
をコピーして、普通リンクにさせることは、不可能なのでしょうか?
具体的には、A1に、"OK"があり、B1に、"YAHOO"があります。
C1には、以下のハイパーリンク関数が、数式バーにあります。
=IFERROR(HYPERLINK("http://g****",A1),HYPERLINK("http://y****",B1))
C1は、エラーのため、リンクは、"http://y****"で、YAHOO"を表示しています。
C1をコピーして、D1に貼り付けするのですが、形式を選択貼り付けでも、文字コピーか、ハイパーリンク関数がコピーされるだけです。
やりたいことは、普通リンクのように、"YAHOO"表示で、数式バーにも、"YAHOO"表示だけで、リンクは、"http://y****"としたいのです。
自分の、浅い知識でいろいろやって1ヶ月たちましたが、うまくいきませんでした。
この難問に挑戦して、さらに教えていただける方があれば、どうかよろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
すいません。
少し考慮が足りませんでした。対象のセルをコピーした後、マクロの起動操作を行うとコピー状態が解除されてしまうようです。そこで、マクロの実行を右クリックメニューに組み込んでみました。下記のマクロを該当シートのSheetモジュールに張り付けて下さい(前回のマクロはそのままで)。
その上で、次のように操作します。
なお、今回のコードは最適なものとは言えません。本来であればメニュー設定は最初に1回実行すれば良いのですが、説明が面倒だったので、こんな実装になっています。
【操作方法】
①HYPERLINK関数が設定されているセルをコピーする。
②ペースト先のセルを右クリックして、「ハイパーリンク貼り付け」を選択する。
【VBA】
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Application.CommandBars("Cell").Reset
With Application.CommandBars("Cell").Controls.Add(Before:=1, Temporary:=True)
.Caption = "ハイパーリンク貼り付け"
.OnAction = "PasteHypLnk"
End With
End Sub
ありがとうございます、結果ですが、残念な事に、貼り付けできたものは、形式を選択して、数式を貼り付けたものと同じ結果になりました。
でも、なんか、選択Caption増やせるとか、すごいです、やっぱり、とんでもなくできる人が世の中にいるのを改めて感じます。
お休みにもかかわらず、このような面倒な質問にお付き合いいただき、感謝いたします。
VBAは、たぶんこちらで頑張って修正できそうな気がします、あくまで気がするだけですが。(笑い)
No.3
- 回答日時:
こんなのはどうでしょうか。
下記のマクロを標準モジュールに張り付けて下さい。その上で、次のように操作します。
ちなみに、エラー処理は組み込んでいないので、正しく使わないとエラーになります。
【操作方法】
①HYPERLINK関数が設定されているセルを「Ctrl+c」でコピーする。
②ペースト先のセルを選択する。
③下記マクロのPasteHypLnkを実行する。
※マクロを右クリックメニューに登録するともっと便利ですですが、ここでは省略します。
【VBA】
Sub PasteHypLnk()
Dim a As Variant
ActiveSheet.Paste
Selection.Formula = Replace(Selection.Formula, "HYPERLINK", "GetHypLnk")
a = Split(Selection.Value, ",")
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=a(0)
If a(1) <> "" Then
Selection.Value = a(1)
Else
Selection.Value = a(0)
End If
End Sub
Function GetHypLnk(L As Variant, E As Variant) As Variant
GetHypLnk = L & "," & E
End Function
ありがとうございます。
実効した結果、ワークシートのペーストメソッドが、失敗しましたとでます。デバックによると、ActiveSheet.Paste辺りを変えるとよいのでしょうか?できれば、引き続き、よろしくご指導いただきたいです。
No.2
- 回答日時:
希望している方法ではないかもしれませんが。
Excelのセルから貼り付けするときの形式に希望の形式がないのなら、
Wordを経由して貼り付けをしてみてはいかが。
ExcelシートのC列をコピー。
Wordに貼り付け(普通の貼り付け形式でOK)。
Wordに貼り付けた範囲をコピー。
Excelに普通の形式で貼り付け。
これで、数式バーには表示文字列だけになり、ハイパーリンクの形式は
維持されています。
1ヶ月も悩むくらいなら、Word経由の方法を試したほうがずっと楽。
回答、ありがとうございます、まさに、悩んでいることは、それですし、楽であるのもご教授通りだと思います。
私は、ご指摘のWord経由、html経由でも、貼り付けた範囲をコピー、貼り付けを2、3度試みてみました。
いずれにしても、経由のわずらわしさと時間があり、受け渡しを他の自動化マクロで試みたところ、
変換関数が多いのと、行数が多いのか、エクセル⇔ワードにしても、エクセル⇔htmlにしても変換時間が、思った以上にかかってしまいました。
試したのは、URLを取り出して、それをハイパーリンクダイアログに貼り付けていくマクロですが、私の力では、できないのです。
エクセルマクロや関数等、エクセル内のみで解決できる手段があればいいのですが、どこかにできるひとがおられるのではないかと。
ベストアンサーにしたいところですが、他の方法も含め、もう少し待ってみます。
No.1
- 回答日時:
> やりたいことは、普通リンクのように、"YAHOO"表示で、数式バーにも、"YAHOO"表示だけで、リンクは、"http://y****"としたいのです。
最終的にこれだけであれば(ハイパーリンクのコピー云々は、なし)関数など使わず当該セルを右クリック→ハイパーリンク
ハイパーリンクダイアログが表示→表示文字列に「yahoo」、一番下のアドレスのYahooのアドレス(https://www.yahoo.co.jp/)
但しアドレスに入力した時点で、表示文字列がアドレスに変わりますからここで編集。あるいは先にアドレスを入力後、表示文字列を編集した方が適切かも。
さっそくの回答、ありがとうございます。
質問の仕方が、足らなかったみたいですみません、コピーしたい関数は、かなりのめんどくさい関数になっており、ハイパーリンク関数
をコピーして、普通リンクにさせることによってしか、解決の糸口がつかめない状況なのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 関数を用いて表示したセルの内容を、見えている形でコピーする方法 2 2022/09/14 16:36
- Excel(エクセル) 【Excel】hyperlink関数を解除してもハイパーリンクが活きるようにできますか? 3 2023/05/22 11:22
- Excel(エクセル) EXCEL 行内のデータを2行に分けて、表を作り直したいのです。教えてください。 5 2023/06/25 14:00
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) Excel表示形式 2 2022/09/09 09:57
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Excel(エクセル) Excelで数式をそのままコピーしたい どうすればいいですか? 4 2022/09/16 02:16
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで隣接していない複数...
-
Excel 行の連続データを列に参...
-
メールソフト「サンダーバード...
-
エクセルで勝手に「折り返して...
-
「選択範囲を解除してアクティ...
-
エクセル 別シートへのコピー...
-
エクセルのコピペでクリップボ...
-
エクセルの2ページ目の作り方
-
【Excel】【VBA】空白のセルに...
-
Excel 他のファイルからシート...
-
エクセルで値だけコピーして背...
-
Excel)軽いデーターのはずなの...
-
エクセルで、選択範囲の数値全...
-
エクセルでの行数・列数を指定...
-
エクセルオートフィルで書式を...
-
自動で別ファイルにデータを入...
-
Excelでコピーした行の挿入を繰...
-
EXCELで「行と列を入れ替える」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル:マクロ「Application...
-
エクセルのアポストロフィを一...
-
エクセルで勝手に「折り返して...
-
エクセルで隣接していない複数...
-
メールソフト「サンダーバード...
-
【マクロ】オートフィルターの...
-
エクセルの2ページ目の作り方
-
Excel 行の連続データを列に参...
-
エクセルで、選択範囲の数値全...
-
エクセル 別シートへのコピー...
-
「選択範囲を解除してアクティ...
-
Excelに、ダブルクォーテーショ...
-
エクセルで値だけコピーして背...
-
エクセルで「コピーしたセルの...
-
EXCEL数値が存在する列の項目名...
-
エクセル コピーしたデータを1...
-
行数の違う表に複数行をコピーする
-
EXCELで「行と列を入れ替える」...
-
エクセルでの行数・列数を指定...
-
エクセル・数値が変化したらカ...
おすすめ情報