Apple IDログイン機能メンテナンスのお知らせ

capeofdragonと申します
Excel2016を使っておりまして
半角又は全角の任意文字列が
あるセル、複数行、複数列を
全角又は空白で調節し
列が始まる見栄えを整列し
同じ位置から文字列が始まる様に
したいです

例、
列1    列2      列3
日本    富士山     No1
アメリカ  バリアーリーフ A1
Brasil 大統領 C1

上の例ですと、日本の後に全角空白3文字を
入れ、アメリカに全角空白1文字、
Basilに半角空白を日本やアメリカの全角空白分と
一致するように半角空白を入れ調整し
半角文字列が含まれていた場合の項目は
半角空白のみで対応したいと考えております

この後、Access2016のテーブルに
インポートする操作をして
列を揃える調整に当てます

Excel2016の関数で実現したいのですが
技術的に知恵はありませんでしょうか?

半角全角文字列混在、
半角全角空白で調整ですと
実現が煩雑な場合は
全角文字列、全角空白のみで
実現ができれば幸甚です

何卒ご教授よろしくお願い申し上げます。
capeofdragon

A 回答 (2件)

半角全角文字列混在、半角全角空白で調整ですと実現が煩雑です。

不可能ではないので、必要な場合はこの回答を基に修正ください。
個人的には、半角全角文字列混在の場合でも下記②の手法で要望を実現できていると思います。
また、フォントをMSゴシックなどの等幅フォントにする必要があります。


以下、2パターンの回答を作りました。
下記手順は添付図のレイアウトになっている前提です。

共通
全領域選択(A1セルのさらに左上の四角形部分をクリック)して、フォントを『MSゴシック』に変更します。

①全角文字列、全角空白のみで調整
当然ながら、半角文字列は含まれないものとしています。
E3セルに『=LEN(B3)』を入力して、E3~G5セルにコピペします。
E7セルに『=MAX(E3:E5)』を入力して、E7~G7セルにコピペします。
H3セルに『=B3&REPT(" ",$E$7-E3+1)&C3&REPT(" ",$F$7-F3+1)&D3』を入力して、H3~H5セルにコピペします。


②半角全角文字列混在、半角空白のみで調整
E3セルに『=LENB(B3)』を入力して、E3~G5セルにコピペします。
E7セルに『=MAX(E3:E5)』を入力して、E7~G7セルにコピペします。
H3セルに『=B3&REPT(" ",$E$7-E3+2)&C3&REPT(" ",$F$7-F3+2)&D3』を入力して、H3~H5セルにコピペします。
「capeofdragonと申します Ex」の回答画像2
    • good
    • 1
この回答へのお礼

解決しました

回答ありがとうございます。
以下の方法で実現できました。
シート全てのセルを
等幅フォントにし
対象セル内を
=LEFT(対象セル&REP(“半角空白”,空白含めた表示する大きさの数字の直),LENB(対象セル))
としまして
実験しましたが
LENB(対象セル)の値を50にして
対象セル内全て半角のLEN(対象セル)の値は50
対象セル内が一つ全角で他全て半角のLEN(対象セル)の値は49
となりますが、
上記=の式と等幅フォントを使えば
対象セルの右端は空白で整列し
一律表示になることがわかります。

迅速なご回答ありがとうございました。

お礼日時:2022/11/04 15:20

えっと。

。。
「列単位に見た際、同列にあるセルの幅を列中で最も長い文字列が入っているセルの全文字が表示できる幅に揃える」ではダメなのでしょうか?
それとは別に「半角文字の直後が全角文字の場合、その間に半角の空白文字を入れる」というのもあるのですかね?

前者をExcelマクロで行うなら EntireColumn.AutoFit を使えば出来ます。
例えばA列からC列の3列についてそれを行いたいなら・・・
   Range("A:C").EntireColumn.AutoFit
・・・という感じ。
手動で行うなら表の最上部にあるA、B、C、・・・と列名が表示されているラベルで、列と列の境目にマウスカーソルを乗せ、ダブルクリックすると出来ます。

後者は処理ロジックを考えるしかないのではないでしょうか?
で、その処理をデータが入っている全てのセルについて実施すると。。。
    • good
    • 2
この回答へのお礼

解決しました

回答ありがとうございます。
以下の方法で実現できました。
シート全てのセルを
等幅フォントにし
対象セル内を
=LEFT(対象セル&REP(“半角空白”,空白含めた表示する大きさの数字の直),LENB(対象セル))
としまして
実験しましたが
LENB(対象セル)の値を50にして
対象セル内全て半角のLEN(対象セル)の値は50
対象セル内が一つ全角で他全て半角のLEN(対象セル)の値は49
となりますが、
上記=の式と等幅フォントを使えば
対象セルの右端は空白で整列し
一律表示になることがわかります。

ご回答ありがとうございました。

お礼日時:2022/11/04 15:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!