Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6312 / 13644 ツリー ←次へ | 前へ→

【45889】セル番地の取得方法を教えて下さい galikun 07/1/17(水) 6:06 質問[未読]
【45891】Re:セル番地の取得方法を教えて下さい ひげくま 07/1/17(水) 8:53 発言[未読]
【45894】Re:セル番地の取得方法を教えて下さい かみちゃん 07/1/17(水) 12:55 発言[未読]
【45914】Re:セル番地の取得方法を教えて下さい ichinose 07/1/17(水) 19:30 発言[未読]
【45942】Re:セル番地の取得方法を教えて下さい Kein 07/1/18(木) 13:21 回答[未読]
【45966】Re:セル番地の取得方法を教えて下さい galikun 07/1/19(金) 20:10 お礼[未読]

【45889】セル番地の取得方法を教えて下さい
質問  galikun E-MAIL  - 07/1/17(水) 6:06 -

引用なし
パスワード
   選んだ任意のセル番地を取得する方法を知りたいです。
使用方法としては 例えば $A$2を任意の場所にコピーするために用います。
コピーを用いない方法としては
 selection.value=range("A2").value
でよいですが、この方法ですとルビが反映されずに困りますのでコピーする方法を用いたいです。
または、コピーを用いない方法でもルビを反映する方法があれば そちらでも良いですので教えて欲しいです。(できれば こちらの方がよいです)
よろしくお願いします

【45891】Re:セル番地の取得方法を教えて下さい
発言  ひげくま  - 07/1/17(水) 8:53 -

引用なし
パスワード
   ▼galikun さん:
こんにちは。

「マクロの記録」で、コピー&ペーストの動作をマクロに記録し、記録されたマクロを見ることをお勧めします。

【45894】Re:セル番地の取得方法を教えて下さい
発言  かみちゃん  - 07/1/17(水) 12:55 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> コピーを用いない方法でもルビを反映する方法

見当違いかもしれませんが、
 Selection.Value = Range("A2").Value
 Selection.Phonetic.Text = Range("A2").Phonetic.Text
ということがしたいのでしょうか?

【45914】Re:セル番地の取得方法を教えて下さい
発言  ichinose  - 07/1/17(水) 19:30 -

引用なし
パスワード
   こんばんは。

>選んだ任意のセル番地を取得する方法を知りたいです。
>使用方法としては 例えば $A$2を任意の場所にコピーするために用います。
>コピーを用いない方法としては
> selection.value=range("A2").value
>でよいですが、この方法ですとルビが反映されずに困りますのでコピーする方法を用いたいです。
>または、コピーを用いない方法でもルビを反映する方法があれば そちらでも良いですので教えて欲しいです。(できれば こちらの方がよいです)
>よろしくお願いします
フリガナをPhoneticオブジェクトという概念で捕らえると
移行は結構大変なんです。

標準モジュールに
'==========================================================
Sub main()
  Range("a1").Value = Range("b1").Value
  Call Set_phonetic(Range("b1"), Range("a1"))
  Range("a1:b1").Phonetics.Visible = True
End Sub
'===============================================================
Sub Set_phonetic(r1 As Range, r2 As Range)
  Dim ph As Phonetic
  Dim idx As Long
  On Error Resume Next
  r2.Phonetics.Delete
  For idx = 1 To r1.Phonetics.Count
    r2.Phonetics.Add r1.Phonetics(idx).Start, _
            r1.Phonetics(idx).Length, _
            r1.Phonetics(idx).Text
    Next
  r2.Phonetics.CharacterType = r1.Phonetics.CharacterType
  r2.Phonetics.Alignment = r1.Phonetics.Alignment
  With r2.Phonetics.Font
    .Name = r1.Phonetics.Font.Name
    .FontStyle = r1.Phonetics.Font.FontStyle
    .Size = r1.Phonetics.Font.Size
    .Strikethrough = r1.Phonetics.Font.Strikethrough
    .Underline = r1.Phonetics.Font.Underline
    .ColorIndex = r1.Phonetics.Font.ColorIndex
    End With
  On Error GoTo 0
End Sub


上記のコードは、アクティブシートの
セルB1の値とフリガナを セルA1に移行しています。
試してみてください。

【45942】Re:セル番地の取得方法を教えて下さい
回答  Kein  - 07/1/18(木) 13:21 -

引用なし
パスワード
   単純に全ての属性をコピーすれば良いのなら

Worksheets("Sheet1").Range("A2").Copy ActiveCell

などと、Copyメソッドの引数で貼り付け先を指定する方法が使えます。

【45966】Re:セル番地の取得方法を教えて下さい
お礼  galikun E-MAIL  - 07/1/19(金) 20:10 -

引用なし
パスワード
   ▼Kein さん:
ありがとうございました。ごく単純な事だったんですね。
さっそく活用していきたいと思います。

6312 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free