- ベストアンサー
文字を変換すると同時にその文字に丸をつけるマクロ
お世話になります。 エクセルで、セルに1と入力したらaと変換するマクロを作っています。 それと同時に変換したaを◯で囲みたいのですが、そういうことは可能でしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
あらかじめ〇を図形で作成しておき見えないところに配置しておきます。 セルD3の最初の文字を囲みたいのであれば ActiveSheet.Shapes.Range(Array("Oval 1")).Select Selection.Copy Range("d3").Select ActiveSheet.Paste このようなコードでセルの一番左の文字を囲むことができます。 Oval 1は必ずOval 1になるとは限らないのでマクロの記録で実際にコピペしてみてその図形が何になるのかは調べてください。
その他の回答 (4)
- okgoo3
- ベストアンサー率74% (20/27)
変換後の○囲み a が、セルに入力または表示されている一般的な文字と同様に取り扱いたいのであれば機種依存文字を使うしかありません。 例えば○囲み a のセルを対象に、別のセルの計算式で参照する場合とか オートシェイプの円の中にアルファベットを仕込む案はセルに入力または表示された文字として取り扱うことができないため、完全に見た目のみの話になります。 まずは手法ではなく利用に関する仕様を詰めてみましょうか。
お礼
ご回答ありがとうございました! また色々検討してみます。
- imogasi
- ベストアンサー率27% (4737/17070)
エクセルでは丸囲み文字は数字で1-20までしかありません。文字は◎や(R)などしかありません。フォントが作られている分しか考えられないのです。 ワードと違って、囲み文字がありません。 一方UnderLineはすべての文字記号フォントの下に引けます。 すべての文字に丸なしと丸ありを作るとフォントが2倍になります。 無駄でしょう。 少数ならaに丸のようなフォントを自作できます。 今までは図形の小さい丸を文字が中に納まるように持ってくるように手動で 調整するという回答しかない。 VBAで「a」の文字列の先頭からの位置はつかめます。しかし丸を 文字の上へ(適切に)持ってくることと丸の大きさを適当にする点で複雑で、 エクセルには、必要ないとされたのでしょう。 この丸囲いを貴重と思う印刷計などのソフトでは解決していると思うが。 だから他の方法(文字色や文字サイズや強調や両括弧など)で我慢するほかありません。 VBAをやろうという人が、よくある質問を蒸し返しているのは、エクセルの経験不足です。英訳がEnclosedAlphaNumericの欧米では数字英字記号だが 日本では漢字なども対象にすると仕組みが大変。日本人はすぐ「丸何とか」を発想する。マル優やマル秘などあるけどね。欧米ではどうかな。
お礼
ご回答ありがとうございました! また色々検討してみます。
>◯をつけたい文字が特殊文字で出ない場合は、どのような方法があるでしょうか? その場合は、さらに困難になります。 WindowsAPIを呼び出して、グラフィックで表示するとか・・・。 ちなみにWindowsAPIをマスターすれば、エクセルでシューティングゲームやアニメーションも作れますよ。
お礼
ご回答ありがとうございました。
aを〇で囲むのではなく、丸の付いたaを表示するのならそれでOKですよね? マルaは機種依存文字なので、できるだけ使用は控えるのが賢明です。 unicodeだと0x24D0です。 =UNICHAR(HEX2DEC("24D0"))でも変換できます。
お礼
ご回答ありがとうございました! また色々検討してみます。
補足
ご回答ありがとうございます。 ◯をつけたい文字が特殊文字で出ない場合は、どのような方法があるでしょうか?
お礼
ご回答ありがとうございました! また色々検討してみます。