Excel VBA質問箱 IV

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

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


1449 / 13645 ツリー ←次へ | 前へ→

【74405】ふり仮名付の文字を隣のセルに表示するには 田中 13/5/29(水) 22:59 質問[未読]
【74406】Re:ふり仮名付の文字を隣のセルに表示する... kanabun 13/5/29(水) 23:15 発言[未読]
【74413】Re:ふり仮名付の文字を隣のセルに表示する... 田中 13/5/31(金) 21:34 質問[未読]
【74414】Re:ふり仮名付の文字を隣のセルに表示する... kanabun 13/5/31(金) 22:19 発言[未読]
【74415】Re:ふり仮名付の文字を隣のセルに表示する... 田中 13/6/1(土) 7:35 質問[未読]
【74416】Re:ふり仮名付の文字を隣のセルに表示する... kanabun 13/6/1(土) 10:31 発言[未読]
【74417】Re:ふり仮名付の文字を隣のセルに表示する... 13/6/1(土) 17:39 回答[未読]
【74418】Re:ふり仮名付の文字を隣のセルに表示する... γ 13/6/2(日) 14:33 発言[未読]
【74419】Re:ふり仮名付の文字を隣のセルに表示する... 田中 13/6/3(月) 7:22 お礼[未読]
【74420】Re:ふり仮名付の文字を隣のセルに表示する... γ 13/6/3(月) 19:57 発言[未読]

【74405】ふり仮名付の文字を隣のセルに表示するに...
質問  田中  - 13/5/29(水) 22:59 -

引用なし
パスワード
   こんにちは!
いつもお世話になります。
教えて頂きたいことがあります。
A1セルにふり仮名付の名前があるとして
B1セルに同様の表示をしたい場合はどのようにしたらよいのでしょうか?
いろいろやってみましたがうまくいきませんでした
どなたかお願いいたします。

【74406】Re:ふり仮名付の文字を隣のセルに表示す...
発言  kanabun  - 13/5/29(水) 23:15 -

引用なし
パスワード
   ▼田中 さん:

>A1セルにふり仮名付の名前があるとして
>B1セルに同様の表示をしたい場合はどのようにしたらよいのでしょうか?
>いろいろやってみましたがうまくいきませんでした

あれ!? 単純に コピペ でふりがな付きになりませんか?

【74413】Re:ふり仮名付の文字を隣のセルに表示す...
質問  田中  - 13/5/31(金) 21:34 -

引用なし
パスワード
   kanbunさん
説明不足で済みません。
例えばA列に住所
B列にふり仮名付名前があり
C列に住所&ふり仮名付名前を表示することは出来ないのかと思っています
C列に式で=A&Bとすると名前のふり仮名が消えてしまいます。
マクロでできないのかと思いましたが同じ様にふり仮名が消えてしまいます。
他に良い方法がありますでしょうか?

▼kanabun さん:
>▼田中 さん:

>>A1セルにふり仮名付の名前があるとして
>>B1セルに同様の表示をしたい場合はどのようにしたらよいのでしょうか?
>>いろいろやってみましたがうまくいきませんでした
>
>あれ!? 単純に コピペ でふりがな付きになりませんか?

【74414】Re:ふり仮名付の文字を隣のセルに表示す...
発言  kanabun  - 13/5/31(金) 22:19 -

引用なし
パスワード
   ▼田中 さん:

>例えばA列に住所
>B列にふり仮名付名前があり
>C列に住所&ふり仮名付名前を表示することは出来ないのかと思っています

逆にお尋ねしますが、
あるセルの文字列の一部分だけふりがなを振ることは
可能ですか?

【74415】Re:ふり仮名付の文字を隣のセルに表示す...
質問  田中  - 13/6/1(土) 7:35 -

引用なし
パスワード
   セルの一部分の文字列にふり仮名をふることは
やっぱり無理みたいです。

では、結合したセルに文字列を振ることは可能でしょうか?
結合した後 値コピーしてふり仮名をつけようとしても出来ません。
これも無理でしょうか?

【74416】Re:ふり仮名付の文字を隣のセルに表示す...
発言  kanabun  - 13/6/1(土) 10:31 -

引用なし
パスワード
   ▼田中 さん:
>セルの一部分の文字列にふり仮名をふることは
>やっぱり無理みたいです。

エクセルではセル単位でしかルビをふれないのですか?
ht tp://okwave.jp/qa/q5756509.html

【74417】Re:ふり仮名付の文字を隣のセルに表示す...
回答    - 13/6/1(土) 17:39 -

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

大筋で言えば
「A1セル.フリガナ = Bセル.フリガナ & C1セル.フリガナ」
みたいなコードを作ればよいのだろうと思います。

で。少し調べてみると、フリガナは「セル」に対して付くのでなく
また「セルのvalue」に付くのでもなく、
付くのは「セルの文字の何文字目から数えて何文字」に対してのようです。

ということで冒頭の概略コードを修正すると。
たとえばA1が3文字、B1が5文字なら、
「C1セルの4文字目から数えて5文字のフリガナ = B1セルの1文字目から
数えて5文字のフリガナ」というようなコードを作ればよいはずです。


▼田中 さん:
>kanbunさん
>説明不足で済みません。
>例えばA列に住所
>B列にふり仮名付名前があり
>C列に住所&ふり仮名付名前を表示することは出来ないのかと思っています
>C列に式で=A&Bとすると名前のふり仮名が消えてしまいます。
>マクロでできないのかと思いましたが同じ様にふり仮名が消えてしまいます。
>他に良い方法がありますでしょうか?
>
>▼kanabun さん:
>>▼田中 さん:
>
>>>A1セルにふり仮名付の名前があるとして
>>>B1セルに同様の表示をしたい場合はどのようにしたらよいのでしょうか?
>>>いろいろやってみましたがうまくいきませんでした
>>
>>あれ!? 単純に コピペ でふりがな付きになりませんか?

【74418】Re:ふり仮名付の文字を隣のセルに表示す...
発言  γ  - 13/6/2(日) 14:33 -

引用なし
パスワード
   横から失礼します。
ちょっと試してみました。

  A    B     C
       ヤマダタロウ     ヤマダタロウ
1 東京都   山田太郎  東京都山田太郎
       スズキイチロウ      スズキイチロウ
2 神奈川県  鈴木一郎  神奈川県鈴木一郎


Sub test()
  Dim k As Long
  Dim s1 As String
  Dim s2 As String
  Dim p

  For k = 1 To Range("A1").End(xlDown).Row
    s1 = Cells(k, 1).Value
    s2 = Cells(k, 2).Value
    Cells(k, 3).Value = s1 & s2
    Cells(k, 3).Phonetics.Visible = True
    For Each p In Cells(k, 2).Phonetics
      Cells(k, 3).Characters(Len(s1) + p.Start,1).PhoneticCharacters = p.Text
    Next
  Next
End Sub

単に、
Cells(k, 3).Characters(Len(s1) + 1, 1).PhoneticCharacters = Cells(k, 2).Phonetic.Text
とすると、
太郎のふりがなであるタロウの位置がずれます。漢字の直ぐ上に来ません。

ですから、上のコードのように、
ふりがなのあるセルの Phonetics コレクションオブジェクトの要素ごとに、
ふりがなを設定する必要があると思います。
(つまり、山田のふりがなと 太郎のふりがな 、それぞれに処理を行うということです。)

---------------------
ちなみに、そもそも論ですが、
> C列に、「住所&ふり仮名付名前」を表示することは出来ないのかと思っています
とのことですが、折角住所と名前が分かれて見やすいのに、
なぜ一つのセルにしてしまうのか、理解に苦しみます。私は改悪だと思います。

また、
> では、結合したセルに文字列を振ることは可能でしょうか?
> 結合した後 値コピーしてふり仮名をつけようとしても出来ません。
> これも無理でしょうか?
とのことですが、
結合セルと言っても、それは結合セルの左上の一つのセルに情報をすべて持っているわけですから、
単一セルでできないことは、結合セルだって同じ状況です。
事態が好転する材料はひとつもありません。

参考になれば幸いです。

【74419】Re:ふり仮名付の文字を隣のセルに表示す...
お礼  田中  - 13/6/3(月) 7:22 -

引用なし
パスワード
   γさん
有難う御座いました。
試してみたらできました。
すごいです!

単一セルで無理なので絶対無理とあきらめていました。
もう一度ゆっくり解読しながら勉強したいと思います。

下記の論ですが
私自身も無理があるなと思いましたが
職場の先輩からの要望でこうして欲しいとの事でしたので
質問させていただきました。

今回返信して下さったみなさんにお手数をかけ申し訳なく思っています。
皆様本当に有難う御座いました。

【74420】Re:ふり仮名付の文字を隣のセルに表示す...
発言  γ  - 13/6/3(月) 19:57 -

引用なし
パスワード
   お役に立てて幸いです。皆さんの助言のおかげです。

なお、以下の
Cells(k, 3).Characters(Len(s1) + p.Start,1).PhoneticCharacters = p.Text
の、1のところは、p.Lengthとするのが自然なことでした。
1でも動きはしますけど、寝覚めが悪いので修正しておいてください。
特に返事等は不要です。

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