Excel VBA質問箱 IV

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

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


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

【14700】記事番号14466の応用で バカボン 04/6/5(土) 17:51 質問[未読]
【14751】Re:記事番号14466の応用で ichinose 04/6/6(日) 19:28 回答[未読]
【14760】Re:記事番号14466の応用で バカボン 04/6/7(月) 10:58 お礼[未読]

【14700】記事番号14466の応用で
質問  バカボン E-MAIL  - 04/6/5(土) 17:51 -

引用なし
パスワード
   14466とSheetなど全く同じ条件で、
今回は値の違うものをいれたいのですが、記述の仕方がわかりません。
今回挿入したい値は、
./01/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=87&UserNum=87 ←挿入したいデータ
 ↑                    ↑    ↑
列番号                   NO    NO 

<Sheet2>
A   B C          D    E    F       G 
PASS NO 項目1       項目2 項目3  項目4     項目5
abc  1 ./01/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=1&UserNum=1       
ded  5           ./02/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=5&UserNum=5

下記は以前、教えて頂いたマクロの記述ですが、式の式の記述がわかりません。
お手宇卯ですがご教授お願いします
=================================================================
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

【14751】Re:記事番号14466の応用で
回答  ichinose  - 04/6/6(日) 19:28 -

引用なし
パスワード
   ▼バカボン さん:
こんばんは。

>14466とSheetなど全く同じ条件で、
>今回は値の違うものをいれたいのですが、記述の仕方がわかりません。
>今回挿入したい値は、
>./01/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=87&UserNum=87 ←挿入したいデータ
> ↑                    ↑    ↑
>列番号                   NO    NO 
>
><Sheet2>
>A   B C          D    E    F       G 
>PASS NO 項目1       項目2 項目3  項目4     項目5
>abc  1 ./01/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=1&UserNum=1       
>ded  5           ./02/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=5&UserNum=5
>
>下記は以前、教えて頂いたマクロの記述ですが、式の式の記述がわかりません。
>お手宇卯ですがご教授お願いします
>=================================================================
>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,"""")"
      .Formula = _
         "=if(sheet1!c2<>"""",""./""&text(column()-2,""00"")&""/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=""&$b2&""&UserNum=""&$b2,"""")"
'    ↑これに変更して下さい


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

ですが、これは、文字を連結する式とワークシート関数の組み合わせです!!
いくつかのワークシート関数とVBAで数式やワークシート関数の入力の
方法を理解すれば、応用できると思いますよ。

例えば、

・文字列として「"」を一つ表すのには
VBAでは、「""」としなければならないこと。

・数式として、文字を連結するのには「&」でつなぐこと。

それから、コードを書く前に
一度、セルに望んでいる答えが表示されるような
数式を考えて入れてみてください。

セルD2なら、

「=IF(Sheet1!D3<>"","./"&TEXT(COLUMN()-2,"00")&"/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum="&$B3&"&UserNum="&$B3,"")」

となりますよね。

これをVBAで実現するにはどうすればよいか?
から 考えてみて下さい。

【14760】Re:記事番号14466の応用で
お礼  バカボン E-MAIL  - 04/6/7(月) 10:58 -

引用なし
パスワード
   ichinose さんいつもありがとうございます。
今後、VBAを少しでも勉強してこなせるようにしたいと思います。
ありがとうございました(^^)

▼ichinose さん:
>▼バカボン さん:
>こんばんは。
>
>>14466とSheetなど全く同じ条件で、
>>今回は値の違うものをいれたいのですが、記述の仕方がわかりません。
>>今回挿入したい値は、
>>./01/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=87&UserNum=87 ←挿入したいデータ
>> ↑                    ↑    ↑
>>列番号                   NO    NO 
>>
>><Sheet2>
>>A   B C          D    E    F       G 
>>PASS NO 項目1       項目2 項目3  項目4     項目5
>>abc  1 ./01/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=1&UserNum=1       
>>ded  5           ./02/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=5&UserNum=5
>>
>>下記は以前、教えて頂いたマクロの記述ですが、式の式の記述がわかりません。
>>お手宇卯ですがご教授お願いします
>>=================================================================
>>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,"""")"
>      .Formula = _
>         "=if(sheet1!c2<>"""",""./""&text(column()-2,""00"")&""/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum=""&$b2&""&UserNum=""&$b2,"""")"
>'    ↑これに変更して下さい
>
>
>>      .Value = .Value
>>      End With
>>     End With
>>   End If
>>End Sub
>
>ですが、これは、文字を連結する式とワークシート関数の組み合わせです!!
>いくつかのワークシート関数とVBAで数式やワークシート関数の入力の
>方法を理解すれば、応用できると思いますよ。
>
>例えば、
>
>・文字列として「"」を一つ表すのには
>VBAでは、「""」としなければならないこと。
>
>・数式として、文字を連結するのには「&」でつなぐこと。
>
>それから、コードを書く前に
>一度、セルに望んでいる答えが表示されるような
>数式を考えて入れてみてください。
>
>セルD2なら、
>
>「=IF(Sheet1!D3<>"","./"&TEXT(COLUMN()-2,"00")&"/b1.cgi?cmd=s&sc=ball&S_1_Num_UserNum="&$B3&"&UserNum="&$B3,"")」
>
>となりますよね。
>
>これをVBAで実現するにはどうすればよいか?
>から 考えてみて下さい。

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