Excel VBA質問箱 IV

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

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


7986 / 13644 ツリー ←次へ | 前へ→

【35655】質問です。 ハオ 06/3/9(木) 11:01 質問[未読]
【35683】Re:質問です。 ハオ 06/3/10(金) 9:25 発言[未読]
【35684】Re:質問です。 やっちん 06/3/10(金) 10:20 発言[未読]
【35687】Re:質問です。 小僧 06/3/10(金) 11:46 回答[未読]
【35689】Re:質問です。 やっちん 06/3/10(金) 13:09 発言[未読]
【35691】Re:質問です。 ハオ 06/3/10(金) 14:05 お礼[未読]
【35692】Re:質問です。 Kein 06/3/10(金) 14:12 回答[未読]
【35694】Re:質問です。 ハオ 06/3/10(金) 14:40 お礼[未読]

【35655】質問です。
質問  ハオ  - 06/3/9(木) 11:01 -

引用なし
パスワード
   VBAに関して、知識がないので、皆さんに聞きたいと思います。

私は下記のVBAを作成したいのですが、
この場合はどういうコードを使えばいいのだろう・・・と思って聞きたいと思います。

A列に各IPアドレス
B列に空白(2月分のアクセス)
C列にいくつかの数字(1月分のアクセス)



空きスペースのところに
別ファイルから
2月分のIPアドレス(K列)とアクセス数(L列)を並べます。

K列とL列をドラッグし、マクロを起動すると
自動的にA列のIPアドレスを探し出し、
K列の中にある同じIPアドレスを見つけ、
IPアドレスの隣(B列)に
L列のアクセス数を自動的に追加します。

このようにやってみたいのですが、よろしくお願いします。
又は参考になるサイトがあれば教えてください。

【35683】Re:質問です。
発言  ハオ  - 06/3/10(金) 9:25 -

引用なし
パスワード
   返答がないと見ると、この方法はないということでいいでしょうか?
他に方法がないだろうかと奮闘中です。
よろしくお願いします。

【35684】Re:質問です。
発言  やっちん  - 06/3/10(金) 10:20 -

引用なし
パスワード
   ▼ハオ さん:
こんにちは。
まずはVBAのお勉強からどうですか?
http://www.asahi-net.or.jp/~ef2o-inue/top01.html

【35687】Re:質問です。
回答  小僧  - 06/3/10(金) 11:46 -

引用なし
パスワード
   ▼ハオ さん、やっちん さん:
こんにちは。

掲示板の上の方にある
「本サイトの基本方針をまとめました。こちら をご一読ください。」
に目を通されてください。

> ・丸投げ
>   「○○するにはどうすればいいか教えてください」といったような、
>   コードを最初から最後まで教えてもらうことを期待するような質問

>・「自分が質問したとき、こんな風に答えてもらったら嬉しいだろうなぁ」と
>  いうような回答を書いてあげてください。

とありますね。


>このようにやってみたいのですが、よろしくお願いします。

K列 の値が A列 に見つからなかった場合や
K列 のIPアドレスに重複はありえるかなどの具体的なデータがないので
必ずしもうまくいくとは限りませんが、

Sub IPアドレスを探してHit数を加算()
Dim i As Long
Dim j As Long

  i = 0
  Do Until Range("K1").Offset(i, 0).Value = ""
    j = 0
    Do Until Range("A1").Offset(j, 0).Value = ""
      If Range("A1").Offset(j, 0).Value = _
        Range("K1").Offset(i, 0).Value Then
        Range("A1").Offset(j, 1).Value = _
        Range("A1").Offset(j, 1).Value + _
        Range("K1").Offset(i, 1).Value
      Exit Do
      End If
      j = j + 1
    Loop
    i = i + 1
  Loop
End Sub

こんな感じでしょうか。
A列、K列ともにソートしてあげるともっと速い処理が可能かもしれませんね。

【35689】Re:質問です。
発言  やっちん  - 06/3/10(金) 13:09 -

引用なし
パスワード
   こんにちは。
>まずはVBAのお勉強からどうですか?
>http://www.asahi-net.or.jp/~ef2o-inue/top01.html

参考になるサイトというつもりで書いたのですが、
VBAを知らないと質問する資格がないという意味ではありません。
読み返すとそう取れないこともないですね。ごめんなさい。

【35691】Re:質問です。
お礼  ハオ  - 06/3/10(金) 14:05 -

引用なし
パスワード
   これは申し訳ありませんでした。
初歩的な質問で、しかもコードを期待して質問をしてしまいました。
皆様にご迷惑をおかけ致しまして申し訳ございません。

VBAに関して勉強したばかりであり、苦戦している途中です。

ある日突然、上司から作れと言われ、焦って皆さんに聞いてしまいました。

他のサイトを探し、下記のコードが見つかりました。
http://park11.wakwak.com/~miko/Excel_Note/16-01_kensaku.htm#16-01-02
(2 入力された内容と一致するセルを選択する方法 )

 Sub FindCells()
  Dim startCell As Range
  Dim aCell As Range
  Dim tRange As Range
  Set startCell = ActiveCell
  Set tRange = startCell
  Set aCell = Cells.Find(What:=startCell.Value, After:=startCell)
  Do Until aCell.Address = startCell.Address
   Set tRange = Union(tRange, aCell)
   Set aCell = Cells.FindNext(After:=aCell)
  Loop
  tRange.Select
  Set startCell = Nothing
  Set tRange = Nothing
  Set aCell = Nothing
 End Sub


このコードで希望のIPアドレスが見つかるまではいいのだが、
問題は続けてこの見つかったIPアドレスをコピーする方法をもうちょっと工夫してみます。

最初から自分の力でやろうとせず、皆さんに甘えてしまった自分に深く反省しております。

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

【35692】Re:質問です。
回答  Kein  - 06/3/10(金) 14:12 -

引用なし
パスワード
   B1に

=IF(ISNA(VLOOKUP($A1,$K:$L,2,FALSE)),"",VLOOKUP($A1,$K:$L,2,FALSE))

という数式を入れ、、A列のデータ入力範囲までフィルコピーすれば出来るはずです。

【35694】Re:質問です。
お礼  ハオ  - 06/3/10(金) 14:40 -

引用なし
パスワード
   ありがとうございました!!
長年苦戦していたことができました!!
感謝感謝!!

▼Kein さん:
>B1に
>
>=IF(ISNA(VLOOKUP($A1,$K:$L,2,FALSE)),"",VLOOKUP($A1,$K:$L,2,FALSE))
>
>という数式を入れ、、A列のデータ入力範囲までフィルコピーすれば出来るはずです。

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