• ベストアンサー

列の幅を文字列の長さに合わせて広げたい

列の幅を文字列の長さに合わせて広げたいと思い、 Cells.EntireColumn.AutoFit を使用してみたのですが、期待通りではありません。 どうすれば、良いのか教えて下さい。

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

  • ベストアンサー
回答No.2

Excel 2003 SP3 で下記コードを試しました。 test.xls にはセル A1 に "abcdefghijikelmno" が入っていて、そのセル幅は初期値のままです。 期待する動作としては A列の列幅が A1 の値が収まる幅まで広がってくれる。 結果、きちんと動いてくれました。 ご報告まで。 WorkBooks.Open ("c:\test.xls") Sheets("aaa").Select Worksheets("aaa").Activate Cells.EntireColumn.AutoFit

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

> 「期待通りではありません」 この部分を説明しないと始まらないと思いますが、、、 Cells.EntireColumn.AutoFit このコードに「期待する動き」 が込められているのであれば、"全てのセル" を AutoFit させたいってことですよね Excel 2007 SP2 ですが、ちゃんと処理されましたよ。

okayama394
質問者

お礼

ありがとうございました。 訂正があります。 WorkBooks("c:\test.als")は WorkBooks.Open("c:\test.als") です。すみません。

okayama394
質問者

補足

Excel 2002 SP3ではうまくいきましたが、Excel 2003 SP3 ではうまくいきません。文字列長に合わせて広がりません。 WorkBooks("c:\test.als") Sheets("aaa").Select Worksheets("aaa").Activate Cells.EntireColumn.AutoFit で試してみました。 シートaaaの1行目の1列目に 文字列abcdefghijikelmno を設定し実行しました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CSSでボックス幅を文字列に合わせたい

    ボックス幅を文字列の幅に合わせるにはどうしたらいいのでしょうか。 テーブルではセルにwidth属性を指定しなくても文字列の幅になりますが、ボックスではwidthプロパティを指定しなかったら領域全体の幅になります。white-spaceプロパティでnowrap指定し、widthプロパティで文字列より小さいサイズに指定するとできるのですが、他に指定する方法があれば教えて下さい。

    • ベストアンサー
    • HTML
  • プロポーショナルフォントの文字列から印刷幅を求める関数

    フォントと文字列を指定して必要なピクセル数を求める関数はありますか 備考欄なのですが2文字程度のあふれなら縮小、それ以上なら改行して全体表示させるマクロを作りたいのです 固定長フォントにすれば文字数から判断できますがPフォントなので 別シートに該当文字列を入れてAutoFitして求めることも考えましたがあまりスマートじゃないで 何かで見た記憶があるのですがVBAじゃなかったのか探しても見つから無かったので質問させていただきます。

  • EXCELの列複数削除

    VB6.0で開発しています。 下のようにEXCELの列を複数削除していますが 思うように削除されません。 削除はされるのですが B列を削除してから次C列を削除となってしまっているので C列を削除する時は元々のC列ではなく B列を削除してからのC列を削除してしまいます。 どう直せばいいのでしょうか? お願いします。 Private Sub Command2_Click() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim B As Integer Dim C As Integer Dim D1 As Integer Dim E As Integer Dim G As Integer Dim H As Integer Dim K As Integer Dim L As Integer Dim M As Integer Dim N As Integer Dim P As Integer Dim R As Integer Dim T As Integer Dim U As Integer Dim V As Integer Dim Y As Integer Dim Z As Integer Dim AA As Integer Dim AB As Integer Dim AC As Integer Dim AD As Integer Dim AE As Integer Dim AF As Integer Dim AG As Integer Dim AH As Integer Dim AI As Integer Dim AJ As Integer Dim AL As Integer Dim AM As Integer Dim AP As Integer Dim AQ As Integer Dim AR As Integer Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("C:\Users\maki\Documents\Book1") Set xlSheet = xlBook.Worksheets("Sheet1") xlApp.Visible = True B = 2 C = 3 D1 = 4 E = 5 G = 7 H = 8 K = 11 L = 12 M = 13 N = 14 P = 16 R = 18 T = 20 U = 21 V = 22 Y = 25 Z = 26 AA = 27 AB = 28 AC = 29 AD = 30 AE = 31 AF = 32 AG = 33 AH = 34 AI = 35 AJ = 36 AL = 38 AM = 39 AP = 42 xlSheet.Cells(1, C).EntireColumn.Delete xlSheet.Cells(1, D1).EntireColumn.Delete xlSheet.Cells(1, E).EntireColumn.Delete xlSheet.Cells(1, G).EntireColumn.Delete xlSheet.Cells(1, H).EntireColumn.Delete xlSheet.Cells(1, K).EntireColumn.Delete xlSheet.Cells(1, M).EntireColumn.Delete xlSheet.Cells(1, N).EntireColumn.Delete xlSheet.Cells(1, P).EntireColumn.Delete xlSheet.Cells(1, R).EntireColumn.Delete xlSheet.Cells(1, T).EntireColumn.Delete xlSheet.Cells(1, U).EntireColumn.Delete xlSheet.Cells(1, V).EntireColumn.Delete xlSheet.Cells(1, Y).EntireColumn.Delete xlSheet.Cells(1, Z).EntireColumn.Delete xlSheet.Cells(1, AA).EntireColumn.Delete xlSheet.Cells(1, AB).EntireColumn.Delete xlSheet.Cells(1, AC).EntireColumn.Delete xlSheet.Cells(1, AD).EntireColumn.Delete xlSheet.Cells(1, AE).EntireColumn.Delete xlSheet.Cells(1, AF).EntireColumn.Delete xlSheet.Cells(1, AG).EntireColumn.Delete xlSheet.Cells(1, AH).EntireColumn.Delete xlSheet.Cells(1, AI).EntireColumn.Delete xlSheet.Cells(1, AJ).EntireColumn.Delete xlSheet.Cells(1, AL).EntireColumn.Delete xlSheet.Cells(1, AM).EntireColumn.Delete xlSheet.Cells(1, AP).EntireColumn.Delete Set xlApp = Nothing Set xlBook = Nothing Set xlSheet = Nothing End Sub

  • 文字列の長さを知りたい

    文字列を表示した場合文字によって幅が違うので 文字数×一つの文字の幅で文字列の長さがでません 文字列の長さがでないとエジタを作る場合に カレットをどこにおいていいのかわかりません (例えばフォントによってはiiiよりwwwの方が長い) 文字列の長さを知る方法はないのでしょうか?

  • 列の幅について

    たとえば、A列からF列までの全体の列幅を知る方法はあるのでしょうか? また、シート1はA列からF列まで使用し、シート2はA列からG列まで使用しています。 非表示の列もあり、列によって幅が違います。 しかし、トータルでは電卓で計算し一緒のはずなのですが、シート1からシート2をクリックしたときに、あきらかに全体の幅が違うのです。 シート1のF列の右端を指で押さえていて、シート2をクリックするとずれているんです! 実際のところはどうなのでしょうか?

  • 列の幅が突然狭くなった

    エクセル2007(SP1)を使用しています 普通に入力をしていたら、突然、列の幅が狭くなりました(A列が14.88→2.38) 列を直接操作したわけではありません どうしてこのような現象が起こるのでしょうか よろしく御願いします

  • Word2007[文字列の幅に合わせる]と[列罫線ををダブルクリックし

    Word2007[文字列の幅に合わせる]と[列罫線ををダブルクリックして自動調整]の違い Word2007 の表の作成について質問です。 列罫線を調整するときに、[自動調整]→[文字列の幅に合わせる]と 列罫線をつかんでダブルクリックして自動調整したときでは列の幅が違うのですが どちらの操作でも同じ結果になりそうなのに違いがでるのが不思議です。 なぜ違いがでるのでしょうか?

  • Excel VBA AutoFit の制約について

    お世話になります。 Excel2010(Windows7) VBA にて、セル幅が自動調整 されず表示が「###」のままの場合があるのですが、 Cells.Select: Cells.EntireColumn.AutoFit 実行において何か成約事項等ございますでしょうか? また、次のコードを使用した場合も、自動調整されない 場合もありました(殆どは自動調整されるのですが)。 その際は(記憶が曖昧ですが)「.EnableEvents = False」 をコメントアウトすると自動調整されました。 同一Bookの中でも、ルーチンによって動きが異なります。 With Application .ScreenUpdating = False .EnableEvents = False .Calculation = xlCalculationManual End With ・・・ Cells.Select Cells.EntireColumn.AutoFit ・・・ With Application .ScreenUpdating = True .EnableEvents = True .Calculation = xlCalculationAutomatic End With 情報不足で申し訳ございませんが よろしくお願い申し上げます。

  • ExcelVBA 列の幅に収まらない文字列を下へ

    お世話になります。 セル書式の折り返し・縮小・結合を使用しないで、 列の幅に収まらない文字列を下の行のセルへ表示させる方法を模索しています。 Application.DisplayAlerts = False Range("A1").Justify で出来るらしいと書物を頼りに実施していますが、下の行のセルへ表示出来ません。 他の方法も含めて、実現方法はあるでしょうか? よろしくお願いします。

  • ワードの文字列同士(上と下の列の幅)の変更について

    はじめまして。 ワードについて(ワード2003)お伺いします。 ワードの文字列同士(上と下の列の幅)の変更はどのようにやるのか教えていただけないでしょうか?