Excel VBA質問箱 IV

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

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


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

【14532】先日の件(14466)で バカボン 04/5/31(月) 22:16 質問[未読]
【14538】Re:先日の件(14466)で ichinose 04/6/1(火) 8:22 回答[未読]
【14542】Re:先日の件(14466)で バカボン 04/6/1(火) 9:31 質問[未読]
【14543】Re:先日の件(14466)で つん 04/6/1(火) 10:11 発言[未読]
【14544】解決できました。 バカボン 04/6/1(火) 10:22 お礼[未読]

【14532】先日の件(14466)で
質問  バカボン E-MAIL  - 04/5/31(月) 22:16 -

引用なし
パスワード
   先日下記のように質問させて頂き、下記のようにお答え頂きました。
そこで今回は前回と違うデータを挿入したいのですが、記述の仕方が分かりません。
前回は./id.cgi?cm?tx3?num=5  の数字を指定する場合
         "=if(sheet1!c2<>"""",""./id.cgi?cm?tx""&column()-2&""?num=""&$b2,"""")" というように記述しましたが
今回は、./01/b.cgi?cmd=s&sc=ball&UserNum=1というようなデータを挿入したいのですがどのように記述すればよろしいでしょうか?

./01/b.cgi?cmd=s&sc=ball&UserNum=1
 ↑                ↑
列番号              NO


>Sheet1,Sheet2があるとして
>現在
><Sheet1>
>A   B  C    D    E    F   G ・・・・
>PASS NO 項目1 項目2 項目3 項目4 項目5 ・・・・
>abc  1  ×            ○×  
>ded  5  ×        △       
>※PASS=半角英数字 番号=連番ではない 項目1〜10まであり、データはない部分もあり,すべて文字列データ
>
>ここでやりたいことがSheet1にて、項目1〜10にてセルにデータがあれば
>Sheet2に同じ座標のセルに下記のようなデータを以下のように転記したいのです。
>
><Sheet2>
>A   B C          D    E    F       G 
>PASS NO 項目1       項目2 項目3  項目4     項目5
>abc  1 ./id.cgi?cm?tx1?num=1        ./id.cgi?cm?tx4?num=1  
>ded  5 ./id.cgi?cm?tx1?num=5   ./id.cgi?cm?tx3?num=5 
>
> ./id.cgi?cm?tx1?num=1   ←挿入したいデータ
>        ↑   ↑
>      列番号  NO  
>のようにSheet1にあるセルにデータがあれば、Sheet2の該当する同じ座標のセルに
>『./id.cgi?cm=・・・・・』 というデータを上記にある規則に従って
>挿入するようにしたいのですが、可能でしょうか?可能であれば、実際にどのような方法をすればよろしいでしょうか?ご教授お願いします
一箇所、不明な点がありましたが(Sheet1の項目1〜項目10が全て未入力だったデータも項目空白として転記するか否か? 、今回は転記しました)、

私は、こういう事例の場合は、関数を使うことが多いんですが・・・。
Sheet2には、1行目の各見出しだけコピーしておいて下さい。

'=================================================================
Sub test()
  Dim rng As Range
  With Worksheets("sheet1")
   Set rng = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
   End With
  If rng.Row > 1 Then
   With Worksheets("sheet2")
     .Range(rng.Resize(, 2).Address).Value = _
         rng.Resize(, 2).Value
     With .Range(rng.Offset(0, 2).Resize(, 10).Address)
      .Formula = _
         "=if(sheet1!c2<>"""",""./id.cgi?cm?tx""&column()-2&""?num=""&$b2,"""")"
      .Value = .Value
      End With
     End With
   End If
End Sub

【14538】Re:先日の件(14466)で
回答  ichinose  - 04/6/1(火) 8:22 -

引用なし
パスワード
   ▼バカボン さん:
おはようございます。
先日と同じレイアウトだという条件で・・・・。

>先日下記のように質問させて頂き、下記のようにお答え頂きました。
>そこで今回は前回と違うデータを挿入したいのですが、記述の仕方が分かりません。
>前回は./id.cgi?cm?tx3?num=5  の数字を指定する場合
>         "=if(sheet1!c2<>"""",""./id.cgi?cm?tx""&column()-2&""?num=""&$b2,"""")" というように記述しましたが
>今回は、./01/b.cgi?cmd=s&sc=ball&UserNum=1というようなデータを挿入したいのですがどのように記述すればよろしいでしょうか?
>
>./01/b.cgi?cmd=s&sc=ball&UserNum=1
> ↑                ↑
>列番号              NO
>
>
>>Sheet1,Sheet2があるとして
>>現在
>><Sheet1>
>>A   B  C    D    E    F   G ・・・・
>>PASS NO 項目1 項目2 項目3 項目4 項目5 ・・・・
>>abc  1  ×            ○×  
>>ded  5  ×        △       
>>※PASS=半角英数字 番号=連番ではない 項目1〜10まであり、データはない部分もあり,すべて文字列データ
>>
>>ここでやりたいことがSheet1にて、項目1〜10にてセルにデータがあれば
>>Sheet2に同じ座標のセルに下記のようなデータを以下のように転記したいのです。
>>
>><Sheet2>
>>A   B C          D    E    F       G 
>>PASS NO 項目1       項目2 項目3  項目4     項目5
>>abc  1 ./id.cgi?cm?tx1?num=1        ./id.cgi?cm?tx4?num=1  
>>ded  5 ./id.cgi?cm?tx1?num=5   ./id.cgi?cm?tx3?num=5 
>>
>> ./id.cgi?cm?tx1?num=1   ←挿入したいデータ
>>        ↑   ↑
>>      列番号  NO  
>>のようにSheet1にあるセルにデータがあれば、Sheet2の該当する同じ座標のセルに
>>『./id.cgi?cm=・・・・・』 というデータを上記にある規則に従って
>>挿入するようにしたいのですが、可能でしょうか?可能であれば、実際にどのような方法をすればよろしいでしょうか?ご教授お願いします
>一箇所、不明な点がありましたが(Sheet1の項目1〜項目10が全て未入力だったデータも項目空白として転記するか否か? 、今回は転記しました)、
>
>私は、こういう事例の場合は、関数を使うことが多いんですが・・・。
>Sheet2には、1行目の各見出しだけコピーしておいて下さい。
>
>'=================================================================
>Sub test()
>  Dim rng As Range
>  With Worksheets("sheet1")
>   Set rng = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
>   End With
>  If rng.Row > 1 Then
>   With Worksheets("sheet2")
>     .Range(rng.Resize(, 2).Address).Value = _
>         rng.Resize(, 2).Value
>     With .Range(rng.Offset(0, 2).Resize(, 10).Address)
      .Formula = _
         "=if(sheet1!c2<>"""",""./""&column()-2&""/b.cgi?cmd=s&sc=ball&UserNum=""&$b2,"""")"

>      .Value = .Value
>      End With
>     End With
>   End If
>End Sub

で確認して下さい。

【14542】Re:先日の件(14466)で
質問  バカボン E-MAIL  - 04/6/1(火) 9:31 -

引用なし
パスワード
   さっそくレスありがとうございます。
そこで試してみたのですが、下記のようなコンパイルエラーがでるのですが
If rng.Row 1 Then 構文エラー
とでますが、どう直せばいいのでしょうか?

【14543】Re:先日の件(14466)で
発言  つん E-MAIL  - 04/6/1(火) 10:11 -

引用なし
パスワード
   バカボン さん、おはよーございます。

>If rng.Row 1 Then 構文エラー

「If rng.Row」と「1 Then」の間に演算子が抜けてるけど・・・
これは単なる、ここに書き込むときのミスかな?(^^;

ところで「改行コードの云々」の件は、どうなりました?
かみちゃんさんとメールでやりとりになったようですが、
出来たら、結果が知りたいですにゃ。
ちょっとだけ関わったりしたし、他のロムされてる方も、
参考にされる方がいらっしゃると思います。
それと、Hirofumiさんもレスいれてくれてはりますよ〜

【14544】解決できました。
お礼  バカボン E-MAIL  - 04/6/1(火) 10:22 -

引用なし
パスワード
   レス頂きましてありがとうございます。
無事解決する事ができました。
今後ともよろしくお願いいたします。
CSVの件に関しましてはそちらのほうに
レスしておきます。

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