Excel2000を使用しています。
複数のセルの中身を繋げて別のシートの一つのセルに入れるマクロを作っています。
(イメージ)
セルA、セルJ、セルO、セルQ、・・・・セルZ
"aaaa","jjjj","ooo","qqqq",・・・・,"zzzzz"
↓
セルXXX
"セルA:aaaa*セルJ:jjjj*セルO:ooo*セルQ:qqqq*・・・・*セルZ:zzzzz"
以下のようにマクロを作成しましたが、セルに時刻が入っているとなぜか数値として処理されます。(日付が入っている場合には問題ない)
(イメージ)
セルA、セルJ、セルO、セルQ、・・・・セルZ
"aaaa","jjjj","ooo","12:00",・・・・,"2006/10/11 13:00"
↓
セルXXX
"セルA:aaaa*セルJ:jjjj*セルO:ooo*セルQ:0.5*・・・・*セルZ:2006/10/11 13:00"
時刻を数値として持っているためでしょうが、数値ではなく時刻として処理したいのですがどのようにしたらよろしいでしょうか?
どうか教えてください。
(マクロ部分)
CopyRows = 2
PasteRows = 2
kai = "*"
Do Until CopyRows = 1000
str1 = "セルA:" & Workbooks(FileName).Worksheets(SheetName).Range("A" & CopyRows).Value & kai
str2 = "セルJ:" & Workbooks(FileName).Worksheets(SheetName).Range("J" & CopyRows).Value & kai
:
str10 = "セルZ:" & Workbooks(FileName).Worksheets(SheetName).Range("Z" & CopyRows).Value & kai
strall = str1 & str2 & str3 & str4 & str5 & str6 & str7 & str8 & str9 & str10
Workbooks(NewWorkbookName).Worksheets("Sheet1").Range("O" & PasteRows).Value = strall
CopyRows = CopyRows + 1
PasteRows = PasteRows + 1
Loop
No.3ベストアンサー
- 回答日時:
「中身を繋げて別のシートの一つのセルに入れる」のですからどのみち文字列になってしまいますね
これは先般ここで教えていただいた方法ですが、
str1 = "セルA:" & Workbooks(FileName).Worksheets(SheetName).Range("A" & CopyRows).Text & kai
に変えたらどうでしょう
また余計ながらstr1~str10の変数は再利用しないのであれば
With Workbooks(FileName).Worksheets(SheetName)
strall = "セルA:" & .Range("A" & CopyRows).Text & kai & _
"セルJ:" & .Range("J" & CopyRows).Text & kai & _
:
"セルZ:" & .Range("Z" & CopyRows).Text & kai
End With
でもよいかもしれません
No.4
- 回答日時:
こんにちは。
>時刻を数値として持っているためでしょうが、数値ではなく時刻として処理したいのですがどのようにしたらよろしいでしょうか?
それは、Value プロパティではなく、Text プロパティです。
ためしに、私もコードを書いてみました。参考にしてみてください。
実際の列は、Cols のArray の中に入れてください。
ただし、以下のマクロは、両方のブックが開いていることが条件です。
'==========================================================
Sub Concatenate_Copy()
Dim i As Long
Dim j As Long
Dim Cols As Variant
Dim v As Variant
Dim buf As String
Dim strAll() As String
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Const KAI As String = "*"
'-----------------------------------------------------
'ユーザー設定欄
Set Sh1 = Workbooks("Book1.xls").Worksheets("Sheet1")
Set Sh2 = Workbooks("Book2.xls").Worksheets("Sheet1")
Cols = Array("A", "J", "O", "Q", "R", "S", "T", "Z")
'-----------------------------------------------------
buf = ""
Application.ScreenUpdating = False
With Sh1
For i = 2 To 1000
For Each v In Cols
buf = buf & "セル" & v & ":" & .Cells(i, v).Text & KAI
Next v
ReDim Preserve strAll(j)
strAll(j) = buf
buf = ""
j = j + 1
Next i
End With
Sh2.Range("O2").Resize(UBound(strAll)+1).Value = WorksheetFunction.Transpose(strAll())
Application.ScreenUpdating = True
Set Sh1 = Nothing
Set Sh2 = Nothing
End Sub
'==========================================================
No.2
- 回答日時:
No.1です。
失礼、質問を読み違えたので訂正します。時刻だけが入っている場合に数値になるのですね。
時刻が入っている列がQ列と決まっているのなら、
str4 = "セルQ:" & Format(Workbooks(FileName).Worksheets(SheetName).Range("Q" & CopyRows).Value, "h:mm") & kai
とすればいかがでしょうか。
No.1
- 回答日時:
もし日付が入っているのがZ列と決まっているのなら、
str10 = "セルZ:" & Format(Workbooks(FileName).Worksheets(SheetName).Range("Z" & CopyRows).Value, "yyyy/m/d h:mm") & kai
としてみてはいかがでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) ※初心者です マクロVBAについて 3 2022/11/05 12:53
- Excel(エクセル) Excleマクロ セル値の代入と文字列の結合について 3 2022/10/05 16:47
- Visual Basic(VBA) Excelのマクロについて教えてください。 3 2022/06/30 09:36
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセルで指定したセルのどれ...
-
EXCEL VBA セルに既に入...
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
貼り付けで複数セルに貼り付けたい
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
Excelでのコメント表示位置
-
(Excel)数字記入セルの数値の後...
-
Excelで住所を2つ(町名迄と番...
-
セルの高さ(行高)を求めるには?
-
エクセルの一つのセルに複数の...
-
VBAで特定の文字が入力されたセ...
-
Excelで条件をつけてハイパーリ...
-
Excelの関数で、性別が男なら『...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
Excelで数式内の文字色を一部だ...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
EXCEL VBA セルに既に入...
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
エクセルの一つのセルに複数の...
-
複数のセルのいずれかに数字が...
-
excelの特定のセルの隣のセル指...
-
数式を残したまま、別のセルに...
-
ハイパーリンクの参照セルのズ...
おすすめ情報