• 締切済み

【excel】セル内の選択文字列の書式設定

excelにて、 セル内の選択文字列の書式をいつも手動で決まった形式に変更しています。 具体的にいうと、1個のセル内で 前半は通常の書式設定(10pt&太字)ですが、 後半から8pt&標準の太さという風です。 この途中からの書式変更の作業をマクロ登録で簡略できないものかと思ってやってみたのですが、 1個のセル全体の書式はマクロ登録できるのですが、 選択文字列の登録ができません。 書式によってセルを別個にすれば問題ないのでしょうが、それはできれば避けたくて。。。 拙い説明になってしまいましたが、 どうかお知恵を拝借させていただきたいと存じます。 よろしくお願いいたします。

みんなの回答

  • hogehage
  • ベストアンサー率50% (54/107)
回答No.2

セルに6文字あるとして、3文字ずつ前半、後半として固定した場合です。 With Range("A1")   With .Characters(Start:=1, Length:=3).Font     .FontStyle = "太字"     .Size = 10   End With   With .Characters(Start:=4, Length:=3).Font     .FontStyle = "標準"     .Size = 8   End With End With Excel2003の場合のコードですが、FontStyle でエラーになる場合は、.Bold = True (太字)と言う様に変更して下さい。

yoooooooko
質問者

お礼

お礼が遅くなりまして申し訳ございません。 セル内の文字数は前半・後半ともに変動するのです。 説明が足りず申し訳ございませんでした。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

Charactersプロパティを使います

関連するQ&A

  • 【Excel】セルの書式設定で標準と文字列の違い

    「セルの書式設定」の「表示形式」での「標準」と「文字列」の違いについてです。 「文字列」は「[文字列]は、数値も文字列として扱います。セルには入力した値がそのまま表示されます」 とあります。 しかし「文字列」に数値を入力するとセルの左上に、グリーンの▼印がでてきて、「数値が文字列として保存されています」というエラー表示がでます。 数値も文字列として扱われるはずですがなぜなのでしょう。いちいち「エラーを無視する」にしなければならないので面倒だなと思いますので、今度は「標準」で入力しようと思いますが、 「標準」は「セルの値に対して一般の書式を適用します(特定の書式を指定しません)」 とのことです。一般の書式、特定の書式が何を指すのか分かりません。 文字列が、数値として扱われない理由と、「標準」「文字列」のそれぞれの特徴を教えてください。

  • セルの書式が標準なのに文字列にできるのはなぜ?

    会社のシステムで吐き出したデータですが セルの書式設定が標準なのに文字列となっています。 マクロを利用して、あるセルの値を別セルへ転記すると、 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示になってしまいます。 会社のシステムが吐き出したエクセルはセルの書式が標準なのに 中の数字が文字列でいられるのが疑問です。 会社のシステムの吐き出したデータは Microsoft Excel 2.1ワークシートで 全てのセルの書式設定は「標準」です。 で例えば 12345678901234 は 12345678901234 と表示されていて 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) 0101という値のセルでも 表示は0101ですが 「数値が文字列として保存されています」 となっています。(先頭に ' は入っていません) それらのセルの値をマクロとかで別セルに転記すると 転記先では1.23457E+13 と表示されてしまいます。 (0101は101になります。) まっさらなエクセルに自分で手入力すると ・セルの書式設定が標準だと 12345678901234 ↓ 1.23457E+13になります。 ・セルの書式設定が数値だと 12345678901234 ↓ 12345678901234 ・セルの書式設定が文字列だと 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) なのに会社のシステムの吐き出しデータは セルの書式設定が標準なのにもかかわらず 12345678901234 ↓ 12345678901234 (ただし 数値が文字列と保存されています と注釈有) となっています。 手入力で書式設定が標準の状態でセルに12345678901234 と表示させるには先頭に ' をつける方法しか知りませんが ' が無いのに表示されています。 でもこの該当セルをマクロで別セル(書式設定:標準)に転記すると 1.23457E+13 となります。 またシステムが吐き出したエクセルの同じシート内に 以下のマクロで転記すると ↓ Sub 転記() 行 = 2 Do If Cells(行, 6).Value = "" Then Exit Do If Cells(行, 6).Value >= 10 Then Cells(行, 7).Value = Range("A2") Else Cells(行, 7).Value = Range("A3") End If 行 = 行 + 1 Loop End Sub ↓ このマクロだと A列~F列が書式設定が標準なのに文字列として表示されているのですが 転記先のG列が書式設定が標準であっても 12345678901234 (数値が文字列と保存されています と注釈有) と同じ状態のまま転記できます。 新しいBOOKのシート2に 会社の吐き出しデータをシートコピーした後、 (セルの書式設定:標準だが文字列で表示されている) そのBOOKに登録されているマクロで シート2のセルからシート1のセル(書式設定:標準)に転記すると 数字は数値に変換され、先頭の0は消え、桁数が多いと指数表示 となってしまいます。 ちょっと混乱しています。 理屈等教えていただければと思います。お願いします。

  • Excelの「’」とセルの書式設定(文字列)の違い

    こんばんわ。 Excelの文字列表示について、教えてください。 数字を入力する際に、先頭に「'」を入力すると 文字列として入力することが出来ますが、 数字が入っているセルのセルの書式設定から 「文字列」に表示形式を変更することとの 違いはなんなんでしょうか? やり方は違うけれど、結果は同じということでしょうか? 「'」を入力すると、データが文字そのものに変わり、 表示形式を変更すると、見た目だけ(左揃えになるなど) 文字列のように見えるだけで、データは 数字のままということなんでしょうか?? また、文字列として入力された数字を Value関数で数値に変換してしまうのと セルの書式設定で「数値」に変更するというものも 同じように、違いが良く分かりません。。。 もう、頭の中が「??」だらけです。 違いを教えていただけたら・・・と思います。 どうぞよろしくお願いいたします<m(__)m>

  • エクセルでセル内の指定文字列のみの書式を変更するVBA

    こんにちは。 エクセルで、どうしてもやり方がわからないものがあるので教えてください。 セル内で指定した文字列のみの書式を変更する方法です。 例えば A1に 『ああいいううええおお』 と入っていたら、 『う』だけを太字にする。 調べてみると、書式変更したい文字の開始位置を指定するという方法がありました。 ですが毎回開始位置が違うので、直接文字列を指定する様な方法があれば教えてください。 宜しくお願いします。

  • エクセルで1列置きに書式変更

    お世話になります。 シートの特定の範囲のみセルの書式を変えたいと思っています。 具体的にはシートの一部について 1行置きに書式を変えたいです。 但し、1行置きとは言っても一部は変えたくない場所があります。 現状は変更したい範囲を手動で飛び地で選択し、まとめて変更しています。 これを簡潔にできないでしょうか? 現状の表は以下の様な感じです      A列    B列    C列・・・・ 1行目 2行目 3行目 ・ ・ ・ この内1・3・5・・・・の行について書式を変更したいのです。 ただし、A列についてはセルを結合していることもあり変更はしたくありません。 また、このシートにはいくつかの表が混在しています。 それらの表それぞれについて1行置きに書式を変えたいと思っています。 したいことを一言で言うと ・変更したいセル範囲を手動で選択する。 ・その後、なんらかの方法(マクロ?)にて選択したところの書式を1行置きに変える。 こういうことは可能でしょうか?

  • エクセル セルの書式設定を選択したすべてのセルに適用する方法

    エクセルの「セルの書式設定」ですが、だいたいのことは複数セルを選択すると、複数セルに適用されるのですが、「セルの書式設定」をしたあとに該当のセルをいちいちダブルクリックしなくては適用されずに困っています。 これは、テキストウィザードで「文字列」として取り込んだ「2008/12/15」などの日付でおこりました。 列をいっせいに「EMMDD」(201215)の形に変更したくて、セルの書式設定をしましたが、見た目が変わらず、ユーザー定義を使う前にいったん「数値」や「標準」「日付」にしてから、とも思ってやってみたのですが、見た目が変わりません。 どれも、その列の該当のセルをダブルクリックしてアクティブにしないと適用されないみたいです。 複数セルを選択して一気にできる方法はありませんか? よろしくお願いします。

  • マクロでセルの中の一部の書式を選び出したり出来ますでしょうか?

    マクロでセルの中の一部の書式を選び出したり出来ますでしょうか? エクセルにウェブの文字列を貼り付けたのですけど 文字列の中の書式で太字や赤字のあるセルだけをマクロで選んだり出来るのでしょうか? たとえばエクセルに貼り付けた結果が下のようになった場合(セルA1~A5) 1番・東京23区 2番・大阪府大阪市 3番・愛知県名古屋市 4番・福岡県福岡市 5番・北海道札幌市 1~5という数字は太字で書かれてある 「東京23区」という文字は赤字で書かれてある 「大阪市」という文字は太字で書かれてある(「大阪府」は普通の書式) その他の文字は普通の書式 これをマクロで何とかすると セルB1に「赤」 セルB2に「太」 セルB3~B5は何も無し って感じに、最初の数字の書式は無視して、文の一部にだけ書式が設定されているのを選び出して、表示できるように出来ますか?

  • EXCELでセル内の文字の書式変更の仕方を教えてください

    EXCELで指定した複数のセルの文字列のうち、頭の数文字のみ書式を変えたいと思っています。 ひとつだけであれば変えたい文字の部分を選択し、書式変更すればいいのですが、複数ある為一括で変更出来る方法がないか探しています。 そこで何かやり方があれば教えてください。マクロでもかまいません。 宜しくお願いします。 あいうえお…はそのまま。(1)、(2)、(3)のみ書式変更      A       B      C 1 (1)あいうえお (1) A  (1) 1 2 (2)かきくけこ (2) B  (2) 2 3 (3)さしすせそ (3) C  (3) 3

  • excel_特定のセル範囲で同じ文字列が有ったら色

    マクロ初心者です。 excel2002マクロ_特定のセル範囲で同じ文字列が有ったらその数によりセルを色分けしたい 特定のセル範囲で文字列が入っているところと空欄のところがあります。 空欄のところには、後から文字列が入るところと空欄のままのところがあります。 その範囲内で同じ文字列があった場合、2個の時、3個の時、4個の時、5個、6個、7個、8個、9個、10個以上の時に、それぞれ決めておいた色でセルを色分け表示したいです。 文字列の順番はランダムです。 excel2002なので、3種類までなら条件付き書式で設定できるのですが、それを超える場合は設定できません。 それで、これをマクロで設定できるでしょうか。 条件付き書式で設定した場合は、文字列を入力した時点でセルの色はすぐに反映されますが、マクロの場合もそのようにすることは可能でしょうか。 よろしくお願いします。

  • Excel2000でセルの書式設定を変更させたくない

    Excel2000でセルの書式設定を変更させたくない Excel2000を使用しています。 Excel2002?以降では、書式設定を保護できるらしいですが、2000ではそのような機能がありません。でも、データを貼り付けた際に書式設定を変更させたくないのですが、何か方法がありますでしょうか? 具体的には、シート内のある範囲内(B3-F43)までを書式設定で「縮小して全体を表示」に設定してあり、「折り返して全体を表示する」のチェックを外してセル1行で表示するよう設定しています。 ここに改行付きの文字列データをコピーして貼り付けると、「折り返して全体を表示する」に勝手にチェックが入ってセル1行では表示しきれなくなり、文字全体が読めなくなるのですが、この勝手にチェックされてしまう「折り返して全体を表示する」のチェックをマクロを使って、自動で外す方法とかありますでしょうか? とりあえず現状は貼り付け前に一度、テキストエディタで改行を削除する編集をしてからデータを貼り付けるようにしてるのですが、面倒なのでできれば改行付きデータを直接Excelに貼り付けても「折り返して全体を表示する」にチェックが入らないようにしたいのです。 マクロの知識はまったくないので、どなたかお知恵を貸していただけないでしょうか? 現在、他の件でマクロを教えていただいて、Thisworkbookという所に、Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)とかいうマクロを記述してあります。 Excelデータを上書きセーブする際にこのマクロが走るようなんですが、これに追記する形で、B3からF43までのセルの書式設定の「折り返して全体を表示する」のチェックを強制的に外すことができると助かるのですが。 同じシート内に、「折り返して全体を表示する」を使用しているセルもあるので、シート全体の書式設定を変えてしまうのではなく、あくまでB3からF43までの範囲のセルで設定したいのですが、こういうことはマクロで可能なのでしょうか?

専門家に質問してみよう