質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

367閲覧

AutoFit ナンバー記号が表示される

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/01/08 07:43

編集2019/01/08 08:00

前提・実現したいこと

現在マクロでセルに入力された内容を印刷しようとしているのですが、
印刷プレビューの際に桁数が多いセルはナンバー記号が表示されます。
理想としてはナンバー記号ではなく数値が表示されて欲しいのですがうまくいきません。
よろしくお願い致します。

発生している問題・エラーメッセージ

####### と印刷プレビューで表示されます。 理想は10000.00と表示

該当のソースコード

VBA

1With TEST_SHEET 2 .Rows.AutoFit 3 .Columns.AutoFit 4 .PrintOut Preview:=True, ActivePrinter:="プリンター名" 5End With

試したこと

列幅の問題かと思いAutoFitをしました。
結果、プレビュー前はナンバー記号にならず正常に表示されていますが
印刷プレビューにするとナンバー記号が表示されてしまいます。

補足情報(FW/ツールのバージョンなど)

Excel2010

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttyp03

2019/01/08 07:51

表示形式は何にしていますか?
ttyp03

2019/01/08 07:51

タグにExcelを追加しましょう。
退会済みユーザー

退会済みユーザー

2019/01/08 07:57 編集

ご回答ありがとうございます。タグを追加致しました。 format関数を使用して#,##0.00としています。
ttyp03

2019/01/08 07:58

ん?そうすると「理想は1000000と表示」と食い違っちゃいますが・・・。
退会済みユーザー

退会済みユーザー

2019/01/08 07:59

失礼しました。10000.00でした 内容を編集します。
ttyp03

2019/01/08 08:00

カンマ編集されるので、「1,000,000.00」では?
退会済みユーザー

退会済みユーザー

2019/01/08 08:16 編集

情報不足ですいません。 その前にNumberFormatLocal = "0.00"としていました。 ですのでFormatは不必要でした。
ttyp03

2019/01/08 08:14

ということは「理想は1000000.000」?NumberFormatLocal = "0.000"をやっているのはどこなんですか?
退会済みユーザー

退会済みユーザー

2019/01/08 08:17

NumberFormatLocal = "0.000"ではなくNumberFormatLocal = "0.00"でした。 情報が整理出来ていない状態でご質問してしまい、申し訳ございません
退会済みユーザー

退会済みユーザー

2019/01/08 08:18

NumberFormatLocal = "0.00"はセルに値を入力する前です。
ttyp03

2019/01/08 08:30

当方2013環境ですが、再現しません。セル結合とかしていないでしょうか?
退会済みユーザー

退会済みユーザー

2019/01/08 08:48

セルの結合はしていません。 印刷設定として With TEST_SHEET.PageSetup .Zoom = False .FitToPagesWide = 1 .CenterHorizontally = True End With としています。 もしかすると印刷プレビューを実施後AutoFitの処理が動いているのかもしれません。
ttyp03

2019/01/08 08:51

マクロを通さない場合は問題ないのでしょうか?メニューからプレビューを表示。
ttyp03

2019/01/08 08:52

状況の切り分けと、必要な情報は全て出したほうが解決は早いかと思います。
退会済みユーザー

退会済みユーザー

2019/01/08 08:53

メニューから印刷プレビューを実施したのですが、ナンバー記号で表示されます。
ttyp03

2019/01/08 08:55

セル幅を十分に広くしてもそうなるのですか?
退会済みユーザー

退会済みユーザー

2019/01/08 08:56

手動でセル幅を広げると正常に表示されます。
ttyp03

2019/01/08 08:58

となると印刷マクロのところで何かをやっている可能性があるので、一連の処理を提示していただいた方がよいですね。
退会済みユーザー

退会済みユーザー

2019/01/08 09:07

流れとしては 1.改ページの設定 .Rows(30).PageBreak = xlPageBreakManual 2.別シートから取得した値をTEST_SHEETのセルに挿入 With TEST_SHEET .Cells(2, 6).Font.Size = 23 .Cells(2, 6).Font.Bold = True .Cells(2, 6).NumberFormatLocal = "0.00" .Cells(2, 6) = hoge End With 3.印刷設定 With TEST_SHEET.PageSetup .Zoom = False .FitToPagesWide = 1 .CenterHorizontally = True End With With TEST_SHEET .Rows.AutoFit .Columns.AutoFit .PrintOut Preview:=True, ActivePrinter:="プリンター名" End With 上記が一連の流れになります。
退会済みユーザー

退会済みユーザー

2019/01/08 09:08

再度実施する際には With TEST_SHEET .ResetAllPageBreaks .Cells.Clear End With としています。
ttyp03

2019/01/08 23:48

情報ありがとうございます。できれば質問を編集してコードを追加してくださいね。
guest

回答2

0

.Rows.AutoFitは幅ではなく高さの自動調節に相当します
幅の場合は.Columns.AutoFitですね
Rangeでもいいかもしれません

投稿2019/01/09 00:54

編集2019/01/09 00:57
S_kawa

総合スコア156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

具体的な解決策ではないですが、問題解決の糸口として、まずは問題箇所の切り分けをしてみましょう。
一連の処理の中で、特定の処理をコメントアウトしてどう動きが変わるのか。
これだけでもどこに問題があるのかの切り分けは可能かと思います。

上記はプログラムでの話ですが、そもそも印刷のタイミングで列幅を調整するような作りは関心しません。
できればあらかじめ十分な列幅を設定しておいたものを、単に印刷する作りの方が望ましいです。
入力されるであろう最大の桁数分の列幅を設定することをお勧めします。
但し印刷の要件として「列幅は桁数にあわせる」という条件があるなら、プログラムでなんとかするしかないですので、冒頭に述べた方法で動作確認して探ってみてください。

投稿2019/01/08 23:54

ttyp03

総合スコア16996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/09 01:08

ありがとうございます。 先程AutoFitを削除してColumnWidthで調整する事で表示する事が出来ました。 私の認識としてAutoFitは列アルファベットの境目でダブルクリックして表示させる時と同じ様な イメージだったのですが、、、、 また、印刷プレビューは別でマクロを作成する事にしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問