Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1667 / 13646 ツリー ←次へ | 前へ→

【72754】変数を使用した行挿入について教えてください。 satot 12/9/15(土) 17:08 質問[未読]
【72755】Re:変数を使用した行挿入について教えてく... UO3 12/9/15(土) 17:11 発言[未読]
【72756】Re:変数を使用した行挿入について教えてく... UO3 12/9/15(土) 17:19 発言[未読]
【72758】Re:変数を使用した行挿入について教えてく... satot 12/9/15(土) 18:34 お礼[未読]

【72754】変数を使用した行挿入について教えてくだ...
質問  satot  - 12/9/15(土) 17:08 -

引用なし
パスワード
   Sub 行挿入()
'
' 行挿入 Macro
'
  Dim ro1, ro2 As Integer
  ro1 = 4
  ro2 = ro1 - 1 + WorksheetFunction.CountA(Sheets("交通費入力").Range("A12:A27"))
  Sheets("交通費データ").Rows("ro1 & ":" & ro2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
  
End Sub

上記の最終行に「コンパイルエラー」が出ます。
ネットで調べてみましたが解決できず、こちらにたどり着きました。
よろしくお願いいたします。

【72755】Re:変数を使用した行挿入について教えて...
発言  UO3  - 12/9/15(土) 17:11 -

引用なし
パスワード
   ▼satot さん:

こんにちは

構文の正常化だけということで。

  Sheets("交通費データ").Rows(ro1 & ":" & ro2).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

【72756】Re:変数を使用した行挿入について教えて...
発言  UO3  - 12/9/15(土) 17:19 -

引用なし
パスワード
   ▼satot さん:

ついでといっては何ですが。

>Dim ro1, ro2 As Integer

まず、「気持ち」としては、ro1 も ro2 も Integer型で規定?
ときおり、このように記述する人もいますが、この記述では ro1 は Variant型になります。
(Variant型は、なんでも受け入れる融通無碍なデータ型ですから実行にはさしつかえありませんが)

Dim ro1 As Integer, ro2 As Integer

このように、それぞれに、データ型をつける必要があります。

次に、行番号関係の変数のデータ型として、大昔はInteger型で記述していました。
当時のエクセルのシートの最大行番号がInteger型の範囲で納まっていたからです。
でも、2003で、すでに 65536 ですから、Integer型の範囲を超えています。

従って As Long にしましょう。

行番号関連以外でも整数に対しては、Long型の規定がよろしいですよ。
内部計算速度も、Long型のほうがInteger型よりやや早いので。

【72758】Re:変数を使用した行挿入について教えて...
お礼  satot  - 12/9/15(土) 18:34 -

引用なし
パスワード
   UO3さん

早速のご回答ありがとうございます。
""部分、Dim部分、Integer部分と3つも教えていただき
深謝します。


ありがとうございました。

1667 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free