• ベストアンサー

excel VBA  Auto文字サイズについて

VBAで自動挿入し印刷すると、会社名の長いところが文字切れしてしまいます。 たとえば、D2-G3までの結合セルにVBAで自動挿入するとき、そのセルに収まる ように、文字の大きさを自動で変えることはできるのでしょうか? デフォルト フォントサイズ 16 会社名が長いものだけよけておいて、セルの文字サイズを12や14に手動で 変更してから印刷しています。 よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 たびたびごめんなさい。 投稿後気づきました。 >D2-G3までの結合セル・・・ というコトでしたね! 結果は同じですが、 厳密にいえば D3 → D2 に変更してください。 どうも失礼しました。m(_ _)m

Loopzone
質問者

お礼

教えていただき、ありがとうございます。できましたm(_ _)m 今後の作業がとてもスムーズにできます。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 Sub Sample1() Range("D3").ShrinkToFit = True End Sub というマクロを実行してみてください。 フォントサイズは16でも18でも構いませんが、とりあえず現在のセル幅内に文字が収まると思います。 (改行はしていません) 見た目の文字サイズは小さくなります。 ※ 一度設定しておくと今後入力する文字列すべてに適応されます。 尚、解除することもあると思いますので、その場合は↓のマクロを実行してみてください。 Sub 解除() Range("D3").ShrinkToFit = False End Sub こんなんではどうでしょうか?m(_ _)m

関連するQ&A

  • エクセルVBAで文字配置と文字制御について

    エクセル97のVBAで、下記の様にセル"A1"と"B1"を結合し、文字配置を 均等割り付けにしたセルの文字配置に"前後にスペースを入れる"を くわえたいのですが?又、文字制御に"折り返して全体を表示する"も 行いたいのですが?教えてください。 Range("A1:A2").Merge Range("A1:A2").HorizontalAlignment = xlHAlignDistributed Range("A1:A2").VerticalAlignment = xlVAlignCenter Cells(1, 1).Value = "テスト123456789" Cells(1, 1).Font.Name = "MS 明朝" Cells(1, 1).Font.Size = 10

  • VBA教えてください

    VBA初心者です。 画像を添付します 赤く塗られているセルには C~Eまでセルを結合し なおかつ結合したセルの中に「停止」の文字をいれます。 これを手動で行うのではなく 自動で(VBAで) 赤く塗られているセルだけに反応し その行のセル(C~E)を結合し なおかつその結合されたセルの中に 「停止」の文字を中央添えにされた状態で 自動入力できるようにしたいです 教えてもらったコードでは Private sub worksheet_change(byval target as range) If target. Interior.colorindex=3 then Range(cells(target.row,3),cells(target.row,5)).merge Cells(target.row,3).value="停止" End if End sub でした。 これでは出来ませんでした 改善点か 新しくコードを書いてもらえると めちゃくちゃ助かります。 回答お願いします

  • エクセル 置き換えをするとセル内のフォントサイズが

    エクセルでフォントサイズがバラバラな文字列が入ってるセルで置き換えをすると セル内のフォントサイズが統一されてしまいました フォントサイズを統一させずに置き換えする事は可能でしょうか? VBAとかマクロをつかわなければならない時はできれば使い方を詳しくおしえて頂きたいです。

  • エクセル/数式で表示された文字の一部のサイズ変更

    Sheet1のA1セルの文字列(顧客名)に 御中 をつけて別のシートに表示したいのです。 =Sheet1!A1&" 御 中" で表示できるのは存じておりますが、文字のサイズを顧客名と御中で変えたいのです。御中を若干ちいさめにしたいのです。 文字でセルに直接 ABCD株式会社 御 中 と打ち込んだものならフォントサイズは文字ごとに変えられますが、数式で表示された文字の一部のフォントサイズを変える方法が判りません。たぶん書式をいじる関数はないのだと思います。 御中を別のセルにできればよいのですが、顧客名の長さが不明なので数式で &" 御中 としています。 良い方法があったらご教示ください。

  • VBA教えてください

    VBA初心者です A1~A5までのセルは色は白色のセル A6.A7セルの色は赤色の背景のセルです A1~A5までのセルは B~Dのセルに数値を入力するが A6.A7のセルのB~Dまでのセルは 結合してさらに結合したセルに「停止」 の文字を入力します。 私がVBAでやりたいのは 赤い背景のセルだけに反応して 自動でB~Dのセルを結合し 停止の文字を自動入力できるようにしたいです コードを書いてくれると めちゃくちゃ助かります 回答お願いします。

  • エクセル 置き換えをするとセル内のフォントサイズが

    先ほど間違えてベストアンサーを出してしまったので連投失礼します。 エクセルでフォントサイズがバラバラな文字列が入ってるセルで置き換えをすると セル内のフォントサイズが統一されてしまいました フォントサイズを統一させずに置き換えする事は可能でしょうか? VBAとかマクロをつかわなければならない時はできれば使い方を詳しくおしえて頂きたいです。

  • VBAで、指定したセルの文字のPDFファイルを印刷したいのですが。

    VBAで、指定したセルの文字のPDFファイルを印刷したいのですが。 VBAの起動時に、指定したセルの文字をファイル名として読み取って、 そのファイル名のPDFファイルを自動印刷させたいのですが、 セルの文字を、PDFの起動パスにセットする方法が分かりませんので ご教授いただけませんでしょうか。 具体的にはこの様な処理を考えています。 A1セルの文字を、PDFのファイル名にします。 PDFファイルは、C:¥PDFファイル に保存されています。 A1に「てすと」の文字があれば、「てすと.pdf」が印刷されます。 お手数ですが宜しくお願いいたします。

  • EXCELのVBAでやれますか?

    A1~C1のセルが結合しています。このA1~C1セルに L から始まる文字が入っている場合はその文字をD1にコピー、kから始まる文字が入っている場合はその文字をE1にコピー、と言う事をやりたいのですが、「○○から始まる文字」というのをVBAで出来るのでしょうか?ちなみに当方はVBA超初心者ですので、なるべく解りやすい御回答お待ちしております。

  • エクセルで結合したセルの高さの自動調整方法?

    エクセル2000、Win2000です。 いくつかのセルを横に結合し、セル内で「折り返して全体を表示する」にしています。 セルを結合してない場合は、入力文字数が多くなっても行の高さを自動調整にすれば、ちゃんと折り返して全部表示されますが、結合したセルの場合は、自動調整がきかず、 いちいち手動で調整しなくてはいけません。 1.結合セルでも自動調整する方法はないですか? 2.ない場合、VBAで行の高さを変えてみようと思いますが、セル内で折り返しているかどうか、および何行に折り返されているかはどう判別すればいいでしょうか?

  • エクセル(VBA) 検索条件に文字色を含める

    エクセルについて質問です。 エクセルのバージョンは2007を使用しています。 基本的にはCOUNTIFS関数やSUMPRODUCT関数の考え方で複数条件を満たすセルの個数を数えたいのですが その検索条件のうちのいくつか(正確には3つの列)において、特定文字が何色かを見たいのです。 具体的には下の添付ファイルの備考A~備考Cの列のように、その3つの列のセルの中にそれぞれ黒文字(自動)、黒文字(自動)太字、赤文字、青文字が混在しており、その文字列の羅列の規則性としては 1.セル内の文字列は必ず、上で挙げた4種のフォントスタイルのうちのいずれかの # で始まる。 2.#A #B #C (#D) のように、セル内の文字列は一連の小文字列が半角スペースで区切られているとともにその一連の小文字列の最初の文字は必ず # もしくは (# であり、またその一連の小文字列は同一色同一の太さである。 3.(#A) のような、() で囲んだ一連の小文字列は黒文字(自動)スタイルだけであり、また1.でも述べたようにセル中の文字列の最初に来ることはない。 となっております。 そこでそれぞれの列について、黒文字(自動)もしくは黒文字(自動)太字もしくは青文字の # で始まるセルを検索し(つまり赤文字の # で始まるセルと何も記述のない空白のセルを除く)、 その3列を and もしくは or 条件で組み合わせ、更に1、2個条件を加えて該当する行の数をCOUNTIFS関数やSUMPRODUCT関数のように数え、返したいと思っております。 恐らくVBAを利用することとなると思います。まだまだVBAを自分で一から構築することは難しいのですが、ある程度VBAを読み解き理解していくことは可能なレベルですので、どうか大まかな構文の枠組みだけでもご教授いただけると幸いです。 よろしくお願いいたします。

専門家に質問してみよう