
VBA初心者です。
当事務所の事務システム(オラクル)をバージョンアップした際、出力帳票をエクセルのワークシートで出すようにしました。
以前は翼システムの帳票印刷用ソフトに連動させ、すぐ印刷できるものにしていたのですが、今後は出力結果から、合計行を後で(エクセルの段階で)だして付け加えたりなどしなければなりません。
事務所には年配の職員のかたもおられ、やはり自動でできるようにして欲しいとの要望があり、いくつかマクロを作りました。
しかし、各帳票エクセルに出力された際、数字が全て文字列で表示されてしまうので、まずこれを数値に直さなければなりません。
(ココから下)
帳票全部が数字ならば、Ctr+Aで範囲選択し、エクセルのツールで数値に直せばいいのですが、そうではないため、範囲選択するところから含めてマクロにしたいのです。
しかし、「文字列→数値」ができません。マクロのツールを使ってでは、それに値する行が作られませんでした。
Format関数をつかうのでしょうか?
?????
初心者的質問で申し訳ありません。
よろしくお願いします。
Sub Macro会費納入状況表データ()
'
' Macro状況表データ Macro
' マクロ記録日 : 2005/11/17 ユーザー名 : sn
'
'
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Rows("5:5").Select
Selection.Insert Shift:=xlDown
Range("D6").Select
Selection.CurrentRegion.Select
(ココになにかいれるとおもうのですが)
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Range("A6").Select
Selection.CurrentRegion.Select
Selection.Copy
End Sub
No.1ベストアンサー
- 回答日時:
こんにちは。
KenKen_SP です。取り合えず、こんな感じのコードを試してみて下さい。
IsNumeric 関数で数値化できるか調べてから、Cdbl 関数で数値化
しています。ただ、セルをひとつずつ調べるのではなく、配列内
で処理してますので、セルの表示形式等に影響されるかもしれません。
Sub TESTMACRO()
Dim BUF As Variant
Dim vntE As Variant
Columns("C:C").Insert Shift:=xlToRight
Rows("5:5").Insert Shift:=xlDown
Range("D6").CurrentRegion.Select
BUF = Selection.Value
For Each vntE In BUF
If IsNumeric(vntE) Then
vntE = CDbl(vntE)
End If
Next vntE
Selection.Value = BUF
Columns("C:C").Delete Shift:=xlToLeft
Range("A6").CurrentRegion.Select
Selection.Copy
End Sub
No.2
- 回答日時:
概ねこんな感じで・
数値が入っているのに、文字列として表示されてしまうのは、セルの書式が文字列になっているためだと思います。
それで、書式を標準にしています。
valはいらないかもしれません
Dim r As Range, x As Range
Set r = Selection.CurrentRegion
For Each x In r
If IsNumeric(x.Value) Then
x.NumberFormatLocal = "G/標準"
x.Value = Val(x.Value)
End If
Next
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Excel(エクセル) エクセルのVBAにショートカットキーの割り当て 3 2022/07/13 14:19
- Excel(エクセル) ②Excel 簡単にシートコピーしたら前日の残高と日付を変更させたい→マクロの記録でエラーが出ます 8 2022/07/16 20:40
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) ExcelVBAについて。 2 2022/12/10 20:08
- Excel(エクセル) excelVBAについて。 8 2022/12/11 13:47
- Excel(エクセル) 【VBA】エクセルで選択した範囲の値のみをクリップボードにコピーするコードについて 3 2023/03/08 17:41
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルで最下行にデータを追加するVBA 6 2023/05/09 09:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
エクセルで特定の列が0表示の場...
-
エクセルに張り付けた写真のフ...
-
メッセージボックスのOKボタ...
-
ExcelのVBA。public変数の値が...
-
Excel_マクロ_現在開いているシ...
-
Excel マクロ VBA プロシー...
-
オートフィルターとExcelマクロ...
-
IF関数を使ってマクロを実行さ...
-
エクセルのマクロでワードの任...
-
ExcelVBAの繰り返し処理でwebク...
-
Excelのセル値に基づいて図形の...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
ExcelVBAでPDFを閉じるソース
-
特定文字のある行の前に空白行...
-
ExcelVBA 図形をクリックした...
-
ピボットテーブルでの毎回可変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
Excel_マクロ_現在開いているシ...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelVBAでPDFを閉じるソース
-
ダブルクリックで貼り付けた画...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
Excelのセル値に基づいて図形の...
-
特定文字のある行の前に空白行...
-
エクセルマクロでワードの一ペ...
-
エクセルで縦に並んだデータを...
-
Excel VBAからAccessマクロを実...
おすすめ情報