こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2011-10-14 23:54:52

QNo.7072025

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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はデータの始まり行の具合で変えること。
エクセルの質問は、念のためにバージョンを書くクセをつけること。

投稿日時 - 2011-10-15 10:48:03

補足

A10.90.90.90.91.21.21.21.2CIRCLECIRCLE
A21.41.41.61.6111.51.5CIRCLECIRCLE
A31.11.30.60.81.71.91.82OBLONG_YOBLONG_Y
A41.31.10.80.61.91.721.8OBLONG_XOBLONG_X
A52.42.12.62.32.62.32.42.1SHAPESHAPE
A60.710.710.710.712.22.22.22.2CIRCLECIRCLE
A70.710.710.710.716.61.46.61.4CIRCLEOBLONG_X

投稿日時 - 2011-10-16 10:13:41

お礼

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

投稿日時 - 2011-10-16 10:17:27

ANo.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

投稿日時 - 2011-10-15 02:02:13

補足

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

投稿日時 - 2011-10-15 10:35:56

あなたにオススメの質問