- 締切済み
エクセルで連番文字の一部サイズ変更。
エクセルで連番文字の一部サイズ変更。 おはようございます。エクセル2000です。B列に20-100-01~20、20-201-01~30等の連番がいくつも入っているデータがありますが、-01からの連番文字だけをサイズ変更したいです。現在は文字サイズ変更で全体を調整していますが、セル枠が小さい(大きくすれば問題ないじゃないかと思われますが)し、最初の20-100、20-201の文字だけを見やすく(強調のような)したいです。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- mitarashi
- ベストアンサー率59% (574/965)
#3です。ご興味を持っていただけたら、この機会にVBAのヘルプなり、入門Webサイト(沢山あります)で調べていたくのが一番です。 簡単に説明すると、Sub testというメインのプログラムでは処理対象のセル範囲を決め(ここでは選択範囲)、セル範囲のセル毎に、実際の処理を行うtestSubというプログラムを呼び出して処理しています。 B列のデータが存在する範囲だけを処理対象にしたければ、下記の様にできます。 Sub test2() Dim mycell As Range With ActiveSheet For Each mycell In .Range(Range("B1"), Range("B" & .Rows.Count).End(xlUp)).Cells testSub mycell Next mycell End With End Sub testSubの方は、最初の"-"を探し、次いでその位置の次から二番目の"-"を探して、二番目の"-"以前の文字の書式を設定しています。ご質問は全角で書いてあるが、実際は半角でしたというケースも予想されましたので、内部ではStrConv関数で半角に変換して処理しています。 書式の設定は、マクロを自動記録して眺めるとだいたい分かりますので、後は試行錯誤してみてください。 xl2000の例では次の内容が記録されました。 With ActiveCell.Characters(Start:=1, Length:=6).Font .Name = "MS Pゴシック" .FontStyle = "太字" .Size = 12 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = 3 End With
- mitarashi
- ベストアンサー率59% (574/965)
'徒然なるままに作成してみました。VBAは嫌ならスルーして下さい。なお、xl2000のコードです。 '選択範囲のxx-yy-zzのxx-yyに書式設定 Sub test() Dim myCell As Range If TypeName(Selection) <> "Range" Then Exit Sub For Each myCell In Selection.Cells testSub myCell Next myCell End Sub Private Sub testSub(myCell As Range) Dim firstHyphenPos As Long, secondHyphenPos As Long firstHyphenPos = InStr(1, StrConv(myCell.Value, vbNarrow), "-") If firstHyphenPos > 1 Then secondHyphenPos = InStr(firstHyphenPos + 1, StrConv(myCell.Value, vbNarrow), "-") Else Exit Sub End If If secondHyphenPos > 1 Then With myCell.Characters(Start:=1, Length:=(secondHyphenPos - 1)).Font 'ここはお好みで設定してください .FontStyle = "太字" .Size = 12 .ColorIndex = 3 End With End If End Sub
- keithin
- ベストアンサー率66% (5278/7941)
添付図の最初のサンプルは, 数式バーの中で「-01~30」の文字範囲を選択してフォントサイズを小さくしています。 添付図の2番目のサンプルは 数式バーの中で逆に「20-100」の文字範囲を選択し,太字(Bボタン)を付けています。 文字が小さくならずに強調できるので,こちらも便利です。 添付図の3番目のサンプルは,ごく簡単に2つのセルに分けて入力しそれぞれのフォントサイズを変えています。 各セルは必ず,事前に文字列の書式を付けておきます。 細かい操作が不要なので,結局これが一番使いやすいとは思います。
お礼
早々にご回答いただきありがとうございます。 サンプル3については、列を追加できないので、サンプル1,2を参考させていだだきます。
- molly1978
- ベストアンサー率33% (393/1186)
「20-100-01」のセルにカーソルを置き、上部の窓で「-01」の部分をマウスで選択します。 フォントサイズを変更し、「-01」のサイズを小さくします。 他のセルも同様ですが、「20-100-01」のセルから下にドラッグ(左クリックしながら下に移動)すれば連続して変更できます。
お礼
早々にご回答いただきありがとうございます。 回答No.2さんと同様この方法が一番無難ですね。 ありがとうございました。
補足
早々にご回答いただきありがとうございます。 エクセル素人のため、VBAに関しては全くわかりませんが、この短時間でこのようなVBAができるんですね。 早速、試してみましたら、範囲内選択で、一発で、出来ました。思わず驚きです。 私自身がデータを現在作成中していまして、会社で データ自体は別人が操作しますので、もしよろしければ、記載していただいてるVBAの内容について、 「意味」、「この部分をこのように変更するとこうなる」、等教えていただけないでしょうか? よろしくお願いします。