Excel VBA質問箱 IV

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

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


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

【65854】検索後、条件により行を挿入する けい 10/7/1(木) 11:04 質問[未読]
【65855】Re:検索後、条件により行を挿入する 超初心者 10/7/1(木) 11:19 発言[未読]
【65856】Re:検索後、条件により行を挿入する けい 10/7/1(木) 11:42 質問[未読]
【65857】Re:検索後、条件により行を挿入する ひつまぶし 10/7/1(木) 11:59 発言[未読]
【65858】Re:検索後、条件により行を挿入する けい 10/7/1(木) 13:10 お礼[未読]

【65854】検索後、条件により行を挿入する
質問  けい  - 10/7/1(木) 11:04 -

引用なし
パスワード
   いくつか調べましたがわかりませんでした。
ご教授お願いできましたらよろしくお願いします。

A列に"Appointments"という文字があった場合、その上の行が空白なら
そのまま、文字があった場合は行を1行挿入させたいのですが、
("Appointments"より上にあるデータとの区切りとして、空白行を設けたい)
見つかった文字に対しての上の行というような書き方がわかりません。
また何行目に挿入するという書き方もわかりません。


Dim srcName As String
Dim m As Long

  srcName = "Appointments"
  Set myRange = Range("A:A").Find(What:=srcName)
   If Not myRange Is Nothing Then

    ※ここに1行上が空白ではない時に・・とIfを入れたい
   
    Rows("?:?").Select ’←ここに何行目とはどう入れたらよいか
    Selection.Insert Shift:=xlDown,opyOrigin:=xlFormatFromLeftOrAbove

   End If

どうぞよろしくお願いいたします。

【65855】Re:検索後、条件により行を挿入する
発言  超初心者  - 10/7/1(木) 11:19 -

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

こんな感じでしょうか

> If Not myRange Is Nothing Then
>   ※ここに1行上が空白ではない時に・・とIfを入れたい
   If myRange.Offset(-1, 0) <> "" Then
>>    'Rows("?:?").Select '←ここに何行目とはどう入れたらよいか
>>    'Selection.Insert Shift:=xlDown, opyOrigin:=xlFormatFromLeftOrAbove
     myRange.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
   End If
> End If


ちなみに、"Appointments"が1行目にあった場合は
エラーが発生してしまいます m(_〜_)m

【65856】Re:検索後、条件により行を挿入する
質問  けい  - 10/7/1(木) 11:42 -

引用なし
パスワード
   ▼超初心者 さん:

早々のご回答をありがとうございました。

"Appointments"は1行目には発生しないので、エラーにはなりません。
上手くいきました。

補足で質問がよろしければお聞きしたいのですが、
B列にも何もないかを確認するため、行全体が空白かどうか
を調べる方法はありますか?

お手数ですが、もし方法がありましたらよろしくお願いいたします。

>▼けい さん:
>
>こんな感じでしょうか
>
>> If Not myRange Is Nothing Then
>>   ※ここに1行上が空白ではない時に・・とIfを入れたい
>   If myRange.Offset(-1, 0) <> "" Then
>>>    'Rows("?:?").Select '←ここに何行目とはどう入れたらよいか
>>>    'Selection.Insert Shift:=xlDown, opyOrigin:=xlFormatFromLeftOrAbove
>     myRange.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
>   End If
>> End If
>
>
>ちなみに、"Appointments"が1行目にあった場合は
>エラーが発生してしまいます m(_〜_)m

【65857】Re:検索後、条件により行を挿入する
発言  ひつまぶし  - 10/7/1(木) 11:59 -

引用なし
パスワード
   ▼けい さん:
>B列にも何もないかを確認するため、行全体が空白かどうか
>を調べる方法はありますか?

対象行をCountA関数の戻り値が0かどうかで判断してはどうですか?

If WorksheetFunction.CountA(myRange.Offset(-1).EntireRow) = 0 Then
  MsgBox "空白行です"
Else
  MsgBox "空白行ではありません"
End If

【65858】Re:検索後、条件により行を挿入する
お礼  けい  - 10/7/1(木) 13:10 -

引用なし
パスワード
   ▼ひつまぶし さん:

ご回答ありがとうございます。

空白でなかった場合は行を挿入だったので

If WorksheetFunction.CountA(myRange.Offset(-1).EntireRow) <> 0 Then

を入れてみたらうまく行きました。
どうもありがとうございました。


>▼けい さん:
>>B列にも何もないかを確認するため、行全体が空白かどうか
>>を調べる方法はありますか?
>
>対象行をCountA関数の戻り値が0かどうかで判断してはどうですか?
>
>If WorksheetFunction.CountA(myRange.Offset(-1).EntireRow) = 0 Then
>  MsgBox "空白行です"
>Else
>  MsgBox "空白行ではありません"
>End If

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