Excel VBA質問箱 IV

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

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


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

【31717】特定文字を含むセルの繰り返しコピー ひまわり 05/11/29(火) 11:31 質問[未読]
【31722】Re:特定文字を含むセルの繰り返しコピー Jaka 05/11/29(火) 11:55 回答[未読]
【31772】Re:特定文字を含むセルの繰り返しコピー ひまわり 05/11/29(火) 22:34 質問[未読]
【31775】Re:特定文字を含むセルの繰り返しコピー ANS 05/11/29(火) 23:00 発言[未読]
【31777】Re:特定文字を含むセルの繰り返しコピー ponpon 05/11/29(火) 23:31 発言[未読]
【31778】Re:特定文字を含むセルの繰り返しコピー こたつねこ 05/11/30(水) 0:00 回答[未読]
【31776】Re:特定文字を含むセルの繰り返しコピー wad 05/11/29(火) 23:29 発言[未読]
【31782】Re:特定文字を含むセルの繰り返しコピー ichinose 05/11/30(水) 7:36 発言[未読]

【31717】特定文字を含むセルの繰り返しコピー
質問  ひまわり  - 05/11/29(火) 11:31 -

引用なし
パスワード
   はじめまして。
VBA初心者の為、わからなくなっていますので、教
えていただけませんでしょうか?
C列に"営業所"という文字列があり、次の"営業所"
という文字列を含む行を見つけるまで、C列の値を
A列に、D列の値をB列にコピーするというVBAマ
クロ(下の結果のようなもの)を作成する方法を教
えていただけませんでしょうか?


   A   B   C   D
1        営業所 あ  
2               
3               
4               
5               
6        営業所 い  
7               
8        営業所 う  
9               

   ↓

(結果)
   A   B   C   D
1 営業所 あ  営業所 あ  
2 営業所 あ         
3 営業所 あ         
4 営業所 あ         
5 営業所 あ         
6 営業所 い  営業所 い  
7 営業所 い         
8 営業所 う  営業所 う  
9 営業所 う

【31722】Re:特定文字を含むセルの繰り返しコピー
回答  Jaka  - 05/11/29(火) 11:55 -

引用なし
パスワード
   こんにちは。
手抜き例題データ???

提示されたデータですと
A1に
=C1

B1に
=D1

A2に
=IF(C2="",A1,C2)
を入れ、
B2までフィル。
A2:B2を選択して
必要な行まで、下にフィル。

【31772】Re:特定文字を含むセルの繰り返しコピー
質問  ひまわり  - 05/11/29(火) 22:34 -

引用なし
パスワード
   Jakaさん御回答ありがとうございます。
関数を使った方法は、私も考えましたが、VBAで作らないといけない事情があるため、困惑しています(;_;
私のような素人でもこのようなことが覚えていけるような何かよい書籍等はありますでしょうか?

【31775】Re:特定文字を含むセルの繰り返しコピー
発言  ANS  - 05/11/29(火) 23:00 -

引用なし
パスワード
   こんばんは

最終行はどこになるのでしょうか?

【31776】Re:特定文字を含むセルの繰り返しコピー
発言  wad  - 05/11/29(火) 23:29 -

引用なし
パスワード
   こんばんは

勘違いなら無視して下さい

Sub TEST()
Dim f As Long
With Worksheets("Sheet1")
  For f = 1 To 9
    If .Range("C" & CStr(f)).Value = "営業所" Then
      .Range(.Range("A" & CStr(f)), .Range("A9")).Value = "営業所"
      .Range(.Range("B" & CStr(f)), .Range("B9")).Value = _
          .Range("C" & CStr(f)).Offset(0, 1).Value
    End If
  Next
End With
End Sub

【31777】Re:特定文字を含むセルの繰り返しコピー
発言  ponpon  - 05/11/29(火) 23:31 -

引用なし
パスワード
   ▼ひまわりさん、ANS さん:
こんばんは

>最終行はどこになるのでしょうか?

C列で取ってみました。
一応できました。シートはアクティブシートです。

何かもっと簡単な方法がありそうですが、
ロジックが思い浮かびません。まだまだだなー!!

Sub test()
  Dim myR As Range
  Dim r As Range
  Dim myAd As String
  
  Set myR = Range("A1", Range("A" & Range("C65536").End(xlUp).Row))
  For Each r In myR
    With r
       .Value = "営業所"
       If .Offset(0, 3).Value <> "" Then
        myAd = .Offset(0, 3).Address
        '.Value = .Offset(0, 2).Value
        .Offset(0, 1).Value = .Offset(0, 3).Value
       Else
        .Offset(0, 1).Value = Range(myAd).Value
       End If
     End With
   Next
   Set myR = Nothing
End Sub

【31778】Re:特定文字を含むセルの繰り返しコピー
回答  こたつねこ  - 05/11/30(水) 0:00 -

引用なし
パスワード
   みなさんこんばんは

表のレイアウトがわからないので、表の作り方によっては
誤動作の可能性もありますが、UsedRangeで私もひとつ

Sub Sample()
  Dim strS(0 To 1) As String
  Dim lngRow As Long
  Dim lngEND As Long
  
  With ActiveSheet
    lngEND = .UsedRange.Rows.Count
    For lngRow = 1 To lngEND
      If .Cells(lngRow, 3).Value = "営業所" Then
        strS(0) = "営業所"
        strS(1) = .Cells(lngRow, 4).Value
      End If
      .Range("A" & lngRow & ":B" & lngRow).Value = strS
    Next lngRow
  End With
End Sub

【31782】Re:特定文字を含むセルの繰り返しコピー
発言  ichinose  - 05/11/30(水) 7:36 -

引用なし
パスワード
   ひまわり さん、みなさん、おはようございます。

Jakaさんの考え方をVBAで行うと・・・・、

'=================================================
Sub main()
  With Range("a1:b10")
    .Formula = "=if(offset(rc,0,2,1,1)<>"""",offset(rc,0,2,1,1),offset(rc,-1,0,1,1))"
    .Value = .Value
    End With
End Sub

但し、変換セル範囲をA1:B10にしています。

確認してください。

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