EXCELで文字の分割について教えてください!

このQ&Aのポイント
  • EXCELで文字の分割方法を教えてください。A1,A4,A7,A10,G1,G4,G7,G10にフォントサイズが11で入力されている文字列(日本語のみ)があります。9文字の場合はそのままで、10文字以上の場合は一部を別のセルに分割する方法を教えてください。
  • EXCELで文字を分割する方法について教えてください。A1,A4,A7,A10,G1,G4,G7,G10には11ポイントのフォントサイズで日本語の文字列が入力されています。文字列が9文字の場合はそのままで、10文字以上の場合は一部を別のセルに分割する方法を教えてください。
  • EXCELで文字を分割する方法について教えてください。A1,A4,A7,A10,G1,G4,G7,G10には11ポイントでフォントサイズが設定された日本語の文字列があります。文字列が9文字の場合は分割しないで表示し、10文字以上の場合は一部を別のセルに分割する方法を教えてください。
回答を見る
  • ベストアンサー

EXCELで文字の分割について教えてください!

いつもお世話になります。 また、ご教示お願いします。 A1,A4,A7,A10,G1,G4,G7,G10にフォントサイズが11で入力されている文字列(日本語のみ)があります。 1 9文字の場合はそのままで 2 10文字以上の場合は 10文字目から18文字目はB2,B5,B8,B11,H2,H5,H8,H11に分割 3 19文字以上の場合はフォントサイズを10にして12文字目まではA1,A4,A7,A10,G1,G4,G7,G10で13文字目からはB2,B5,B8,B11,H2,H5,H8,H11に分割 といった上記の条件を満たすようなマクロというのはどのように記述したらよろしいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

マクロを作ってみました。こんな感じでしょうか。 Sub 文字列分割()  Const RngStr As String = "A1,A4,A7,A10,G1,G4,G7,G10"  Dim Rng As Variant  Dim R As Range  Dim i As Integer  Rng = Split(RngStr, ",")  For i = LBound(Rng) To UBound(Rng)   Set R = Range(Rng(i))   Select Case Len(R.Value)    Case Is > 18     R.Offset(1, 1).Value = Right(R.Value, Len(R.Value) - 18)     R.Value = Left(R.Value, 18)     Union(R, R.Offset(1, 1)).Font.Size = 10    Case Is > 9     R.Offset(1, 1).Value = Right(R.Value, Len(R.Value) - 9)     R.Value = Left(R.Value, 9)   End Select   Next End Sub

miyasako11
質問者

お礼

いつもありがとうございます。 おかげさまで出来ました。

関連するQ&A

  • EXCEL 文字列分割について

    EXCEL2003を使用しています。 1つのセルに文字列が入力されており、 それを決まったバイト数ずつ別のセルに分割したいと考えています。 例)A1の文字列を6バイトずつ分割したい A1:東京都文京区 ↓ B1:東京都 C1:文京区 これを実現する為に B1に「=LEFTB(A1,6)」 C1に「=MIDB(A1,7,6)」という数式を入力しました。 A1の文字列が全角のみ(または半角のみ)なら 上記の数式で問題ないと思うのですが、 分割対象の文字列は全角と半角が混ざっており、 例えばA1の値が 「a東京都文京区」 というようなものだった場合、 B1:a東京 C1:文京 となり、元の文字列にある「都」の文字が消えてしまいます。 元の文字列が上記の様な場合には B1:a東京 C1:都文京 というように値が返されるようにしたいのですが、 どのように実現したらよいでしょうか?

  • VB 文字の分割??

    EXCELのSheet1にマクロのSWをつけてSheet2のA列の文字をC列にうつす。 と言うコマンドボタンを作りました。 その後、C列のMSNA00881Sなどの任意の文字を分割し、変換したいのですが・・・・先ず、4文字目のAをA=B B=Cなどこちらが指定した任意の文字に変更。 その後、0088を任意の数字に変換。 等です。 先ず文字を分割して、その後selectを使って、、と言われたのですが。。 上手く動きません。 どのように作ったらいいのでしょうか??

  • エクセル 文字列を分割するマクロについて

    1行目から200行目くらいまで、A列に次のようなデータが入っています。 (A1セル) A 1 A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S このデータを下記のようにカンマごとに別のセルに分割するマクロを 教えていただけないでしょうか。 A1に「A」を、S1に「S」を入れたいと思っています。  A B C ・・・ R S 1 A B C ・・・ R S

  • EXCELで指定の文字にHTMLタグを追加する

    EXCELでHTMLの文字列の入れ替え方をご教示お願い致します。 EXCELでHTMLをつくる~というようなものではなく、EXCEL内で文字列を作る、という内容です。 状況としては、 A1に あああ と入力されており、 修正後はB2に <font size="4" color="FF0000">あいうえお</font>あああ と入力されている状態を作り出したいと考えております。 C2に ="<font size="4" color="FF0000">あいうえお</font>"&A1 と入力すると、HTMLタグ内の「"4"」が反応し、式が成立しなくなってしまったりと、うまく作ることが出来ません。 ご教示お願い致します。

  • エクセルでカンマ区切り文字を各行に分解するマクロを書きたい

    WindowsXP Excel2003 エクセルで以下ができるマクロを書きたいです。 B列にはカンマ区切りで文字列が入っています。 カンマ区切りの数は行によって様々です。 この表をB列のカンマ区切り文字を各行に分解したいです。 その際、A列とC列は分解前の値と同様です。 このようなマクロは書けますかね? A列     B列     C列 あ     a,b,c    100 い     d,e     200 う     f      300 え     g,h     400     ↓ A列     B列     C列 あ     a      100 あ     b      100 あ     c      100 い     d      200 い     e      200 う     f      300 え     g      400 え     h      400

  • エクセル関数 A#BB#CCCを分割したい

    A1に"A#BB#CCC"という文字列があり、#を元にB1 C1 D1に分割させたいのですが、ご教授お願いいたします。B1は書けたのですが、#が同一文字で判別方法などがよくわかりません。 可能であれば、A列が空白になるまでの、マクロ登録をしておきたいです。 B1 = LEFT(A1,FIND("#",A1)-1)

  • 文字列の分割

    "abcdefghijk"というような文字列を  例(1):abcd、efg、h、i、jk  例(2):ab、cdefg、h、ijk  例(3):a、b、c、de、f、ghijk のように分割したいのですが、substringを使って取得するしかないでしょうか。 素人考えですみませんが、 class test{ char[] a = new char[4]; char[] b = new char[3]; char c; char d; char[] e = new char[2]; } のようなクラスを作り、 test t = new test(); t = "abcdefghijk"; などどすることで、分割する方法はないでしょうか。  #上記を試したところ、互換性のない型とエラーになりました。 分割するパターンが複数あり、文字列が長くなるとsubstringを記述する回数が増え、 終了インデックスを間違えそうで。  #間違えないようにすればいいだけの話ですが。 substring以外の方法、またはsubstringの上手な使い方がありましたら、教えていただけないでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Excelで文字を抽出したい

    A列に文字がはいっており(IかHかOかPを含む文字 23~25文字)、B列にはA列中の一文字(IかHかOかP)だけを表示させたいんです。 つまり、 ●もしA1セルに****I***・・・が入っていたら→B1セルにはI ●もしA2セルに****H***・・・が入っていたら→B2セルにはH、 というふうにしたいです。 この場合、B列にはどういった関数を入れればいいんでしょうか? 尚、***の部分にIかHかOかPは1文字しか入りえません。

  • Excelマクロで行を分割してコピーしたいのですが・・・

    いろいろなサイトで調べたのですが、方法が見つからずご質問させて頂きます。 Excelシートの中で値が入っている行まで順番に読み、A列のセルの値が'東京'かつB列の値が'2'以上の行があった場合に、その行をB列の値の数だけその行の下にコピーで挿入したいのですが、どのようなマクロにすれば良いかご教授頂けないでしょうか? 例) セルA1='東京' セルB1='3' の場合、 ---------------------------------- セルA1='東京' セルB1='1' セルA1='東京' セルB1='1' セルA1='東京' セルB1='1' ※セルB1を値の数だけ分割し、なおかつ値を'1'にする ※分割が終わったら、分割元の行を削除する ※その他の列の値はそのままコピーする 以上、宜しくお願い致します!

  • 全角半角考慮した文字列分割

    A列           B列         C列 あいうえおかきくけこ  あいうえ      おかきくけこ アイウエオカキクケコ   アイウエオカキクケ  コ あいうえオかきくけこ   あいうえオ    かきくけこ A列に全角半角混在のテキスト項目があります。 B列、C列に以下のルールで分割したいのですが、Excel関数で 実現可能でしょうか?可能な場合は式をご教授して 頂けますでしょうか。宜しくお願い致します。 ※全角をバイト数指定で分割して文字化けしないように 全角半角を考慮して分割したいと考えております。 B列  A列9桁目が半角の場合は半角9文字 A列9桁目全角の場合は半角8文字(全角4文字)をB列へ C列  A列10桁目が半角の場合は、左端10桁目~半角9文字 A列10桁目が全角の場合は、左端9桁目~半角9文字

専門家に質問してみよう