
Excel2010使用者、VBA初心者です。
複数のファイルを1つのエクセルに統合するマクロをネット上で見つけたのでそれを活用しているのですが、空白セルの一部が長さ0の文字列のまま残ってしまうため、一気にNullに変換したいと思っています。ネットで色々と調べてコードを追加してみたのですが、どうしても上手くいきません。
下記のコードに何を追加すれば最後に一気に空白をNullにできるでしょうか?ご教授頂けると助かります。どうぞよろしくお願い致します。
Sub ExcelbookCombine()
'結合したいファイルがあるフォルダの場所 cドライブなら "C:\test\"
Const Fol As String = "C:\test\"
Dim Fn
Dim NewFile As Workbook
Dim Wb As Workbook
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim R As Range
Set NewFile = Workbooks.Add
Set Ws1 = NewFile.Worksheets(1)
Set R = Ws1.Range("A2")
Fn = Dir(Fol, vbNormal)
Do Until Fn = ""
Set Wb = Workbooks.Open(Fol & Fn)
'ワークシート1をコピーする場合は Wb.Worksheets(1)
'ワークシート2をコピーする場合は Wb.Worksheets(2)
Set Ws2 = Wb.Worksheets(1)
'Aの1行目から8列目までをコピーして結合する
Ws2.Range("A2", Ws2.Cells(Rows.Count, 1).End(xlUp)).Resize(, 22).Copy R
Set R = R.End(xlDown).Offset(1)
Application.CutCopyMode = False
Wb.Close
'Debug.Print Fn
Fn = Dir
Loop
Set R = Nothing
Set Ws1 = Nothing: Set Ws2 = Nothing
Set Wb = Nothing: Set NewFile = Nothing
End Sub
↑このコードできちんとエクセルは統合できています。
No.1ベストアンサー
- 回答日時:
こんばんは。
まず、失礼ですが、用語で、「統合(Consolidate)」というのは、Excelのメソッドのひとつですから、今回は、単に、データが合わさっただけのようですね。
それと、Null というのは、VBAでは、Null値といって、Variant型に入れる特別な値のことで、ワークシートで、Nullという言葉は使われているようですが、VBA側からは、単にEmptyのことを言うようです。(いわゆる完全な空の状態)
>空白セルの一部が長さ0の文字列のまま残ってしまうため、一気にNullに変換したいと思っています。
長さ0の文字列を取るための方法は、範囲をClearContents で行うか、
細かい選別をする場合は、
範囲.SpecailCells(xlCellTypeConstants,xlTextValues) を使い、その個々のセルの内容をループして、Len 等で調べてClearContents を使うか、
With 範囲
.Value = .Value
End With
とすれば、長さ0の文字列は消えます。
試してみてください。ダメだったら、もう少し詳しい情報が必要になるかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルVBA 長さ0の文字列をNullに
その他(Microsoft Office)
-
IF関数で空欄(")の時、Nullにしたい
その他(Microsoft Office)
-
Excelの空文字セルの削除方法を教えてください
Excel(エクセル)
-
-
4
空白セルを空セルに置き換える方法(エクセル)
Excel(エクセル)
-
5
ExcelVBAでのNZ関数について
Visual Basic(VBA)
-
6
Nullではない空白の一括削除
Excel(エクセル)
-
7
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
8
長さ0の文字列を格納できません。とエラー発生して困っています。
Visual Basic(VBA)
-
9
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
10
変数にnullを代入するには
Excel(エクセル)
-
11
AccessでのNullと長さ0の文字列につきまして
Access(アクセス)
-
12
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
13
長さ0の文字列" を空白のまま数値化
Excel(エクセル)
-
14
Excelの保存で "を付けないように保存できる?"
Excel(エクセル)
-
15
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
16
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
17
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
18
含まない言い方ってどうしたらいいんでしょうか
日本語
-
19
Access VBAで int型にnullを入れる方法について
Windows Vista・XP
-
20
指定のWORKBOOKを前面表示する方法(エクセル:VBA)
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel で3行目、6行目、9行目...
-
エクセルの範囲指定を規則的に...
-
Excel セルの高さ&幅を変更で...
-
エクセル セル内の文字列を他...
-
エクセル ブック全体 セル結...
-
結合セルに結合していないセル...
-
onedriveの中身を削除したらパ...
-
office365 ファイルを削除したい
-
アーカイブってなに?
-
嫌ってるのに真似してきたりマ...
-
どうして子どもを持ちたいとな...
-
DVDなどの映画から字幕を .srt ...
-
たくさんのフォルダを一つのフ...
-
2TBのUSBメモリを2000円ほどで...
-
mac ファイルの詳細情報を編集...
-
【文字コード】コピー&ペース...
-
拡張子.dどういう意味
-
Windows10 フォルダ内の自動並...
-
.tmp.mp4と.mp4の違い
-
macのdmgファイル(動画)をMP4...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの切り取りと貼り付け...
-
【エクセル】異なったシートの...
-
Excel で3行目、6行目、9行目...
-
結合セルに結合していないセル...
-
VBAで長さ0の文字列をNullに変...
-
excel vba 非表示のシートに入...
-
EXCEL VBAでコピーす...
-
エクセル ブック全体 セル結...
-
エクセルの表組み、セルの固定...
-
エクセルの範囲指定を規則的に...
-
sheet1からsheet2に飛ばす(エ...
-
Excel countifの複数条件
-
エクセル
-
エディタのviで行数を指定せず...
-
エクセル計算式の複写について
-
EXCEL のVLOOKUPについて
-
縦書きのトーナメント表の作り方
-
エクセルでセルの結合
-
困っています。Excelで
-
Excelのシートに別のシートの表...
おすすめ情報