Excel VBA質問箱 IV

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

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


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

【58150】指定セルの範囲内の数字の抽出 yukigod 08/10/6(月) 16:13 質問[未読]
【58151】Re:指定セルの範囲内の数字の抽出 neptune 08/10/6(月) 16:38 回答[未読]
【58153】Re:指定セルの範囲内の数字の抽出 neptune 08/10/6(月) 16:42 発言[未読]
【58152】Re:指定セルの範囲内の数字の抽出 neptune 08/10/6(月) 16:40 発言[未読]

【58150】指定セルの範囲内の数字の抽出
質問  yukigod  - 08/10/6(月) 16:13 -

引用なし
パスワード
   はじめまして、よろしくお願いします。

ひとつのディレクトリの中にマクロを実行するブック(検索.xls)と参照するファイルが(test1〜3)3つあります。
そのそれぞれのファイル(test1〜3)の、指定したシートの指定したセルにはランダムに数字が振られていています。(すべて同じシートの同じ範囲にランダムに数字が振られている)
その中の1〜10の数字だけ抽出し、マクロを実行するファイルの指定セルに貼り付けたいと思っています。

とりあえず、それぞれのファイルの指定した範囲のセルからコピーすることは出来ました。
ですが、その中で1〜10の値だけを抽出して、マクロを実行するブックに貼り付けの仕方がわかりません。

どなたかご教授お願いします。


Sub Value_Pass2()

  Dim objWBK As Workbook 'ブックを宣言
  Dim objSH As Worksheet 'シートを宣言

  Application.ScreenUpdating = False '画面更新を止める(この処理を入れると画面がバタバタしない)
  
  Set objSH = ThisWorkbook.Worksheets("Sheet1")   'objSH=作業自シート
   
'====
  Set objWBK = Workbooks.Open(ThisWorkbook.Path & "\test1.xls")  '参照するブック=test1.xls、test1.xlsを開く
    
  objWBK.Worksheets("練習1").Range("B2:B11").Select   '参照するブックとコピーする値を選択
  Selection.Copy                     '選択範囲をコピー
  ActiveWorkbook.Close (False)             'アクティブになっているtest1.xlsをクローズ
  objSH.Range("B2").Select                '作業自シートのセルB2を選択し
  ActiveSheet.Paste                   'このシートに貼り付け
  
'====
  Set objWBK = Workbooks.Open(ThisWorkbook.Path & "\test2.xls")  '参照するブック=test2.xls、test2.xlsを開く
    
  objWBK.Worksheets("練習2").Range("B2:B11").Select
  Selection.Copy
  ActiveWorkbook.Close (False)
  objSH.Range("C2").Select
  ActiveSheet.Paste

'====
  Set objWBK = Workbooks.Open(ThisWorkbook.Path & "\test3.xls")  '参照するブック=test2.xls、test2.xlsを開く
    
  objWBK.Worksheets("練習3").Range("B2:B11").Select
  Selection.Copy
  ActiveWorkbook.Close (False)
  objSH.Range("D2").Select
  ActiveSheet.Paste

【58151】Re:指定セルの範囲内の数字の抽出
回答  neptune  - 08/10/6(月) 16:38 -

引用なし
パスワード
   ▼yukigod さん:
こんにちは

>とりあえず、それぞれのファイルの指定した範囲のセルからコピーすることは出来ました。
>ですが、その中で1〜10の値だけを抽出して、マクロを実行するブックに貼り付けの仕方がわかりません。

先ず、コピペは必要ありません。

シートから値を変数に入れる例
dim lngBuf as long
lngBuf = objWBK.worksheets("シート名").range("セルアドレス").value
で、取得できます。

次に、
objSH.range("セルアドレス").value=lngBuf
で、任意のBookの任意のシートの任意のセルにデータを転記できます。

次にデータの比較
データが「1以上 且つ 10未満である」と言う事を条件として判断します。
if lngBuf>=1 and lngBuf <=10 then
  転記処理
end if

これらの手法を工夫して組み合わせて使ってみてください。

【58152】Re:指定セルの範囲内の数字の抽出
発言  neptune  - 08/10/6(月) 16:40 -

引用なし
パスワード
   ▼yukigod さん:
追記
↑のobjSH、objWBK の意味は本来の宣言どおりとしてます。

【58153】Re:指定セルの範囲内の数字の抽出
発言  neptune  - 08/10/6(月) 16:42 -

引用なし
パスワード
   ▼neptune さん:
すみません
>データが「1以上 且つ 10未満である」と言う事を条件として判断します。
1以上 且つ 10以下ですね。^ ^;;

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