• 締切済み

エクセルのマクロ記述について

B列~I列に入力されている最終行まで下記処理を行うマクロの記述を教えてください。 整数のみ小数点以下1桁表示にする。(例: 2→2.0) 小数(例:1.32、2.4)の場合は何もしない。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

本質問は (1)最下行と最右列の取得(最右列はI列固定列なのかもしれない。質問に明示されていない。) (2)セルの値が、整数かの判定 (3)表示形式の設定 これらを認識してますか。どれが判らないのか。 エクセルには、セル範囲について、条件付きの表示形式の設定は貧弱で、 1セルづつ、判別し表示形式を設定しなければならないと思う。 (しかし2010では書式(フォント、罫線、パターン限りから)は、表示形式にまで、設定内容が及んできているようだが。) セルの値が整数から、小数点つき数に変えられたときは、連動性はない。 ーー 標準モジュールに Sub test01() d1 = Range("A65536").End(xlUp).Row MsgBox d1 d2 = Range("IV2").End(xlToLeft).Column MsgBox d2 For j = 1 To d2 For i = 2 To d1 x = Cells(i, j) If Int(x) = x Then Cells(i, j).NumberFormat = "#,##0.0" End If Next i Next j End Sub ーー Range("IV2")の2はデータの始まり行の具合で変えること。 エクセルの質問は、念のためにバージョンを書くクセをつけること。

myk488698
質問者

お礼

分かり難い質問で申し訳ありません。 もっと整理して質問の内容を再検討させて頂きます。 回答ありがとうございました。

myk488698
質問者

補足

A1 0.9 0.9 0.9 0.9 1.2 1.2 1.2 1.2 CIRCLE CIRCLE A2 1.4 1.4 1.6 1.6 1 1 1.5 1.5 CIRCLE CIRCLE A3 1.1 1.3 0.6 0.8 1.7 1.9 1.8 2 OBLONG_Y OBLONG_Y A4 1.3 1.1 0.8 0.6 1.9 1.7 2 1.8 OBLONG_X OBLONG_X A5 2.4 2.1 2.6 2.3 2.6 2.3 2.4 2.1 SHAPE SHAPE A6 0.71 0.71 0.71 0.71 2.2 2.2 2.2 2.2 CIRCLE CIRCLE A7 0.71 0.71 0.71 0.71 6.6 1.4 6.6 1.4 CIRCLE OBLONG_X

  • spar
  • ベストアンサー率46% (35/75)
回答No.1

こんばんは こんな感じ・・・かな? 元データはバックアップしてから作業して下さいね Sub Test() Dim r As Long, c As Integer Dim Text As String Dim Dec As Integer Application.ScreenUpdating = False For c = 2 To 9 For r = 1 To Rows.Count Text = Sheet1.Cells(r, c) Dec = InStr(Text, ".") If Dec = 0 Then Sheet1.Cells(r, c).NumberFormatLocal = "0.0_ " End If Next r Next c Application.ScreenUpdating = True End Sub

myk488698
質問者

補足

Text = Sheet1.Cells(r, c)とNext r間をループして処理が抜け出せなくなるようです。

関連するQ&A