Excel VBA質問箱 IV

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

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


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

【40838】教えて下さい 初心者 06/7/25(火) 3:55 質問[未読]
【40842】Re:教えて下さい だるま 06/7/25(火) 8:28 回答[未読]
【40846】Re:教えて下さい 注意 06/7/25(火) 9:22 発言[未読]
【40980】Re:教えて下さい 初心者 06/7/27(木) 11:04 お礼[未読]
【40898】Re:教えて下さい Hirofumi 06/7/25(火) 21:05 回答[未読]
【40981】Re:教えて下さい 初心者 06/7/27(木) 11:09 お礼[未読]
【63685】Re:教えて下さい 黄身 09/11/30(月) 3:51 質問[未読]
【63686】Re:教えて下さい Hirofumi 09/11/30(月) 8:46 回答[未読]
【63687】Re:教えて下さい 黄身 09/11/30(月) 9:08 発言[未読]
【63691】Re:教えて下さい Hirofumi 09/11/30(月) 12:13 回答[未読]
【63692】Re:教えて下さい 黄身 09/11/30(月) 12:24 お礼[未読]

【40838】教えて下さい
質問  初心者  - 06/7/25(火) 3:55 -

引用なし
パスワード
   例えば次のようなシート(データは約1000行位です)が2つ存在した場合に・・・
<シート1>
  A  
1 aaaa
2 bbbb
3 cccc
4 dddd
5 eeee
  ・
  ・
  ・
  ・
<シート2>
  A    B    C
1 aaaa ああああ アアアア
2 dddd いいいい イイイイ
3 eeee うううう ウウウウ
4 cccc ええええ エエエエ
5 ffff おおおお オオオオ
  ・
  ・
  ・
<欲しい結果(シート3)>
  A    B    C
1 aaaa ああああ アアアア
2 cccc ええええ エエエエ
3 dddd いいいい イイイイ
4 eeee うううう ウウウウ

シート1とシート2のA列を照らし合わせ、合致した部分をシート2からシート3に抜き出すにはどうしたらよいのでしょうか?
ご教授の程、宜しくお願い致します。

【40842】Re:教えて下さい
回答  だるま WEB  - 06/7/25(火) 8:28 -

引用なし
パスワード
   一般機能のVLOOKUP関数で充分な気がしますが。^d^

【40846】Re:教えて下さい
発言  注意  - 06/7/25(火) 9:22 -

引用なし
パスワード
   VBA質問箱基本ポリシー
http://www.vbalab.net/bbspolicy.html
>タイトルは内容を示すものに
>記事のタイトルは、その質問の内容が端的にわかるようなものにしてください。
>単に「教えてください」とか「困っています」などといったタイトルでは、回答
>者があなたの質問をクリックしない可能性が非常に高くなります。すなわち、回
>答がつかない可能性が高くなる、ということです。

【40898】Re:教えて下さい
回答  Hirofumi  - 06/7/25(火) 21:05 -

引用なし
パスワード
   試して無いけど、こんな物で出来るかも?
ただし、夫々のシートには、列見出しが有る物とします
また、Sheet1、Sheet2共に同一シート内では重複が無い物とします

Option Explicit

Public Sub UpDate()

  '"Sheet1"のデータ列数(A列)
  Const clngColumns1 As Long = 1
  '"Sheet1"の比較Key列位置(基準からA列の列Offset値)
  Const clngKeys1 As Long = 0
  
  '"Sheet2"のデータ列数(A列〜C列)
  Const clngColumns2 As Long = 3
  '"Sheet2"の比較Key列位置(基準からA列の列Offset値)
  Const clngKeys2 As Long = 0
  
  Dim i As Long
  Dim rngList1 As Range
  Dim lngEnd1 As Long
  Dim vntData1 As Variant
  Dim lngRow1 As Long
  Dim rngList2 As Range
  Dim lngEnd2 As Long
  Dim vntData2 As Variant
  Dim lngRow2 As Long
  Dim rngResult As Range
  Dim lngWrite As Long
  Dim strProm As String

  'Sheet1のA1を基準とします(列見出し先頭のセル位置)
  Set rngList1 = Worksheets("Sheet1").Cells(1, "A")
  
  'Sheet2のA1を基準とする(列見出し先頭のセル位置)
  Set rngList2 = Worksheets("Sheet2").Cells(1, "A")
  
  'Sheet3のA1を基準とする(列見出し先頭のセル位置)
  Set rngResult = Worksheets("Sheet3").Cells(1, "A")
  
  '画面更新を停止
  Application.ScreenUpdating = False
  
  '"Sheet1"データの基準に就いて基礎データの取得
  If Not GetBasicData(rngList1, lngEnd1, _
      clngColumns1, clngKeys1, vntData1) Then
    strProm = rngList1.Parent.Name & "にデータが有りません"
    GoTo Wayout
  End If
  
  '"Sheet2"データの基準に就いて基礎データの取得
  If Not GetBasicData(rngList2, lngEnd2, _
      clngColumns2, clngKeys2, vntData2) Then
    strProm = rngList2.Parent.Name & "にデータが有りません"
    GoTo Wayout
  End If
  
  '"Sheet1"の比較位置
  lngRow1 = 1
  '"Sheet2"の比較位置
  lngRow2 = 1
  '"Sheet1"若しくは、"Sheet2"が最終行に達するまで繰り返し
  Do Until lngRow1 > lngEnd1 Or lngRow2 > lngEnd2
    '比較結果に就いて
    Select Case vntData1(lngRow1, 1)
      Case Is = vntData2(lngRow2, 1) 'Matchiした場合
        '"Sheet3"に"Sheet2"のA〜C列のデータを出力
        lngWrite = lngWrite + 1
        rngList2.Offset(lngRow2).Resize(, clngColumns2).Copy _
            Destination:=rngResult.Offset(lngWrite)
        '両データの比較位置の更新
        lngRow1 = lngRow1 + 1
        lngRow2 = lngRow2 + 1
      Case Is > vntData2(lngRow2, 1) '"Sheet2"固有値の場合
        '"Sheet2"の比較位置を更新
        lngRow2 = lngRow2 + 1
      Case Is < vntData2(lngRow2, 1) '"Sheet1"固有値の場合
        '"Sheet1"の比較位置を更新
        lngRow1 = lngRow1 + 1
    End Select
  Loop

  '"Sheet1"データの復旧
  DataRestore rngList1, lngEnd1, clngColumns1
  
  '"Sheet2"データの復旧
  DataRestore rngList2, lngEnd2, clngColumns2
  
  strProm = "処理が完了しました"
  
Wayout:
  
  '画面更新を再開
  Application.ScreenUpdating = True
  
  Set rngList1 = Nothing
  Set rngList2 = Nothing
  Set rngResult = Nothing
  
  MsgBox strProm, vbInformation
  
End Sub

Private Function GetBasicData(rngList As Range, _
                lngRows As Long, _
                lngColumns As Long, _
                lngKeys As Long, _
                vntData As Variant) As Boolean

  Dim i As Long
  Dim lngNumb() As Long
  
  '基準に就いて
  With rngList
    '行数を取得
    lngRows = .Offset(65536 - .Row, _
              lngKeys).End(xlUp).Row - .Row
    'データが無ければFunctionを抜ける(戻り値=False)
    If lngRows < 0 Then
      Exit Function
    End If
    '復帰用整列Keyを作成
    ReDim lngNumb(1 To lngRows, 1 To 1)
    For i = 1 To lngRows
      lngNumb(i, 1) = i
    Next i
    '復帰用Keyの出力列を挿入
    .Offset(1, lngColumns).EntireColumn.Insert
    '復帰用Keyの出力
    .Offset(1, lngColumns).Resize(lngRows).Value = lngNumb
    'データをlngKeys列で整列
    .Offset(1).Resize(lngRows, lngColumns + 1).Sort _
        Key1:=.Offset(1, lngKeys), Order1:=xlAscending, _
        Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
        Orientation:=xlTopToBottom, SortMethod:=xlStroke
    'データを配列に取得
    vntData = .Offset(1, lngKeys).Resize(lngRows + 1).Value
  End With
  
  GetBasicData = True

End Function

Private Sub DataRestore(rngList As Range, _
            lngRows As Long, _
            lngColumns As Long)

  'データの復旧
  With rngList
    '元データ順位を復帰
    .Offset(1).Resize(lngRows, lngColumns + 1).Sort _
        Key1:=.Offset(1, lngColumns), Order1:=xlAscending, _
        Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
        Orientation:=xlTopToBottom, SortMethod:=xlStroke

    '復帰用Key列を削除
    .Offset(, lngColumns).EntireColumn.Delete
  End With

End Sub

【40980】Re:教えて下さい
お礼  初心者  - 06/7/27(木) 11:04 -

引用なし
パスワード
   だるまさん。返答ありがとうございました。
ご指摘を受けた件に関しましては以後、注意致します。
申し訳ありませんでした。

【40981】Re:教えて下さい
お礼  初心者  - 06/7/27(木) 11:09 -

引用なし
パスワード
   Hirofumi さん返答遅くなり大変申し訳ありませんでした。
簡素な説明まで付けて頂き感謝しております。
早速、ためして見ます。

お忙しい中、本当に有難うございました。

【63685】Re:教えて下さい
質問  黄身  - 09/11/30(月) 3:51 -

引用なし
パスワード
   古いものを取り出してきて申し訳ないです。

このサンプルを利用して、
sheet1
2
4
2
1
sheet2
1 12
2 24
3 34
4 45

sheet3
2 24
4 45
2 24
1 12

に並べようとしたんですが、いざやってみると、

例.
(sheet1)
2
4
2
1
(sheet2)
1 12
2 24
3 34
4 45

(sheet3)
1 12
2 24
4 45

となってしまいました。
重複した値を消さずに、かつ順番を変えずにするには
どこをいじればいいですか?


▼Hirofumi さん:
>試して無いけど、こんな物で出来るかも?
>ただし、夫々のシートには、列見出しが有る物とします
>また、Sheet1、Sheet2共に同一シート内では重複が無い物とします
>
>Option Explicit
>
>Public Sub UpDate()
>
>  '"Sheet1"のデータ列数(A列)
>  Const clngColumns1 As Long = 1
>  '"Sheet1"の比較Key列位置(基準からA列の列Offset値)
>  Const clngKeys1 As Long = 0
>  
>  '"Sheet2"のデータ列数(A列〜C列)
>  Const clngColumns2 As Long = 3
>  '"Sheet2"の比較Key列位置(基準からA列の列Offset値)
>  Const clngKeys2 As Long = 0
>  
>  Dim i As Long
>  Dim rngList1 As Range
>  Dim lngEnd1 As Long
>  Dim vntData1 As Variant
>  Dim lngRow1 As Long
>  Dim rngList2 As Range
>  Dim lngEnd2 As Long
>  Dim vntData2 As Variant
>  Dim lngRow2 As Long
>  Dim rngResult As Range
>  Dim lngWrite As Long
>  Dim strProm As String
>
>  'Sheet1のA1を基準とします(列見出し先頭のセル位置)
>  Set rngList1 = Worksheets("Sheet1").Cells(1, "A")
>  
>  'Sheet2のA1を基準とする(列見出し先頭のセル位置)
>  Set rngList2 = Worksheets("Sheet2").Cells(1, "A")
>  
>  'Sheet3のA1を基準とする(列見出し先頭のセル位置)
>  Set rngResult = Worksheets("Sheet3").Cells(1, "A")
>  
>  '画面更新を停止
>  Application.ScreenUpdating = False
>  
>  '"Sheet1"データの基準に就いて基礎データの取得
>  If Not GetBasicData(rngList1, lngEnd1, _
>      clngColumns1, clngKeys1, vntData1) Then
>    strProm = rngList1.Parent.Name & "にデータが有りません"
>    GoTo Wayout
>  End If
>  
>  '"Sheet2"データの基準に就いて基礎データの取得
>  If Not GetBasicData(rngList2, lngEnd2, _
>      clngColumns2, clngKeys2, vntData2) Then
>    strProm = rngList2.Parent.Name & "にデータが有りません"
>    GoTo Wayout
>  End If
>  
>  '"Sheet1"の比較位置
>  lngRow1 = 1
>  '"Sheet2"の比較位置
>  lngRow2 = 1
>  '"Sheet1"若しくは、"Sheet2"が最終行に達するまで繰り返し
>  Do Until lngRow1 > lngEnd1 Or lngRow2 > lngEnd2
>    '比較結果に就いて
>    Select Case vntData1(lngRow1, 1)
>      Case Is = vntData2(lngRow2, 1) 'Matchiした場合
>        '"Sheet3"に"Sheet2"のA〜C列のデータを出力
>        lngWrite = lngWrite + 1
>        rngList2.Offset(lngRow2).Resize(, clngColumns2).Copy _
>            Destination:=rngResult.Offset(lngWrite)
>        '両データの比較位置の更新
>        lngRow1 = lngRow1 + 1
>        lngRow2 = lngRow2 + 1
>      Case Is > vntData2(lngRow2, 1) '"Sheet2"固有値の場合
>        '"Sheet2"の比較位置を更新
>        lngRow2 = lngRow2 + 1
>      Case Is < vntData2(lngRow2, 1) '"Sheet1"固有値の場合
>        '"Sheet1"の比較位置を更新
>        lngRow1 = lngRow1 + 1
>    End Select
>  Loop
>
>  '"Sheet1"データの復旧
>  DataRestore rngList1, lngEnd1, clngColumns1
>  
>  '"Sheet2"データの復旧
>  DataRestore rngList2, lngEnd2, clngColumns2
>  
>  strProm = "処理が完了しました"
>  
>Wayout:
>  
>  '画面更新を再開
>  Application.ScreenUpdating = True
>  
>  Set rngList1 = Nothing
>  Set rngList2 = Nothing
>  Set rngResult = Nothing
>  
>  MsgBox strProm, vbInformation
>  
>End Sub
>
>Private Function GetBasicData(rngList As Range, _
>                lngRows As Long, _
>                lngColumns As Long, _
>                lngKeys As Long, _
>                vntData As Variant) As Boolean
>
>  Dim i As Long
>  Dim lngNumb() As Long
>  
>  '基準に就いて
>  With rngList
>    '行数を取得
>    lngRows = .Offset(65536 - .Row, _
>              lngKeys).End(xlUp).Row - .Row
>    'データが無ければFunctionを抜ける(戻り値=False)
>    If lngRows < 0 Then
>      Exit Function
>    End If
>    '復帰用整列Keyを作成
>    ReDim lngNumb(1 To lngRows, 1 To 1)
>    For i = 1 To lngRows
>      lngNumb(i, 1) = i
>    Next i
>    '復帰用Keyの出力列を挿入
>    .Offset(1, lngColumns).EntireColumn.Insert
>    '復帰用Keyの出力
>    .Offset(1, lngColumns).Resize(lngRows).Value = lngNumb
>    'データをlngKeys列で整列
>    .Offset(1).Resize(lngRows, lngColumns + 1).Sort _
>        Key1:=.Offset(1, lngKeys), Order1:=xlAscending, _
>        Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
>        Orientation:=xlTopToBottom, SortMethod:=xlStroke
>    'データを配列に取得
>    vntData = .Offset(1, lngKeys).Resize(lngRows + 1).Value
>  End With
>  
>  GetBasicData = True
>
>End Function
>
>Private Sub DataRestore(rngList As Range, _
>            lngRows As Long, _
>            lngColumns As Long)
>
>  'データの復旧
>  With rngList
>    '元データ順位を復帰
>    .Offset(1).Resize(lngRows, lngColumns + 1).Sort _
>        Key1:=.Offset(1, lngColumns), Order1:=xlAscending, _
>        Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
>        Orientation:=xlTopToBottom, SortMethod:=xlStroke
>
>    '復帰用Key列を削除
>    .Offset(, lngColumns).EntireColumn.Delete
>  End With
>
>End Sub

【63686】Re:教えて下さい
回答  Hirofumi  - 09/11/30(月) 8:46 -

引用なし
パスワード
   Sheet1はKeyが重複していて、Sheet2はKeyの重複が無いのですか?
もしそうなら、出来ますがコードを変更しなければ成りません
それより、Dictionaryを使った方が簡単に出来ると思いますよ

【63687】Re:教えて下さい
発言  黄身  - 09/11/30(月) 9:08 -

引用なし
パスワード
   ▼Hirofumi さん:
Sheet2はKeyの重複はないです。
ちょっとDictionary調べてみます。


>Sheet1はKeyが重複していて、Sheet2はKeyの重複が無いのですか?
>もしそうなら、出来ますがコードを変更しなければ成りません
>それより、Dictionaryを使った方が簡単に出来ると思いますよ

【63691】Re:教えて下さい
回答  Hirofumi  - 09/11/30(月) 12:13 -

引用なし
パスワード
   Sheet1、Sheet2共に列見出しが在る物とします

Option Explicit

Public Sub DataMatch3()

'  同一データのチェック
'  Dictionary版

  'Sheet1のデータ列数(A列)
  Const clngColumns1 As Long = 1
  'Sheet1のKey列(A列)の位置設定(基準位置からの列Offset)
  Const clngKey1 As Long = 0
  
  'Sheet2のデータ列数(A列〜B列)
  Const clngColumns2 As Long = 2
  'Sheet2のKey列(A列)の位置設定(基準位置からの列Offset)
  Const clngKey2 As Long = 0
  
  Dim i As Long
  Dim rngList1 As Range
  Dim lngRows1 As Long
  Dim vntKeys1 As Variant
  Dim rngList2 As Range
  Dim lngRows2 As Long
  Dim vntKeys2 As Variant
  Dim rngResult As Range
  Dim lngWrite As Long
  Dim dicIndex As Object
  Dim strProm As String

  'Sheet1データシートのA1を基準とします
  Set rngList1 = Worksheets("Sheet1").Range("A1")
  
  'Sheet2データシートのA1を基準とする
  Set rngList2 = Worksheets("Sheet2").Range("A1")
  
  'Sheet3結果シートのA1を基準とする
  Set rngResult = Worksheets("Sheet3").Range("A1")

  'Dictionaryオブジェクトを取得
  Set dicIndex = CreateObject("Scripting.Dictionary")
  
  '画面更新を停止
  Application.ScreenUpdating = False
    
  'Sheet1の基準に就いて、Key列データと行数取得
  If Not GetBasicData(rngList1, lngRows1, clngKey1, vntKeys1) Then
    strProm = rngList1.Parent.Name & "にデータが有りません"
    GoTo Wayout
  End If
  
  'Sheet2の基準に就いて、Key列データと行数取得
  If Not GetBasicData(rngList2, lngRows2, clngKey2, vntKeys2) Then
    strProm = rngList2.Parent.Name & "にデータが有りません"
    GoTo Wayout
  End If
  
  'Sheet2のKeyデータと行位置をDictionaryに登録
  With dicIndex
    '最終行に達するまで繰り返し
    For i = 1 To lngRows2
      'Dictionaryに登録
      .Item(vntKeys2(i, 1)) = i
    Next i
    'Sheet1のKeyデータをDictionaryで比較し在ったら転記
    For i = 1 To lngRows1
      'Dictionaryに登録が有る場合集計
      If .Exists(vntKeys1(i, 1)) Then
        '出力位置を更新
        lngWrite = lngWrite + 1
        'Sheet3のA列にSheet2シートの該当行を出力
        rngList2.Offset(.Item(vntKeys1(i, 1))).Resize(, clngColumns2).Copy _
            Destination:=rngResult.Offset(lngWrite)
      End If
    Next i
  End With
  
  strProm = "処理が完了しました"
  
Wayout:
  
  '画面更新を再開
  Application.ScreenUpdating = True
  
  Set dicIndex = Nothing
  Set rngList1 = Nothing
  Set rngList2 = Nothing
  Set rngResult = Nothing
  
  MsgBox strProm, vbInformation
  
End Sub

Private Function GetBasicData(rngList As Range, _
                lngRows As Long, _
                lngKeys As Long, _
                vntData As Variant) As Boolean

  '基準に就いて
  With rngList
    '行数を取得
    lngRows = .Offset(Rows.Count - .Row, lngKeys).End(xlUp).Row - .Row
    'データが無ければFunctionを抜ける(戻り値=False)
    If lngRows <= 0 Then
      Exit Function
    End If
    '比較用配列にデータを取得
    vntData = .Offset(1, lngKeys).Resize(lngRows + 1).Value
  End With
  
  GetBasicData = True

End Function

【63692】Re:教えて下さい
お礼  黄身  - 09/11/30(月) 12:24 -

引用なし
パスワード
   ▼Hirofumi さん:
できました!!
1時から発表なので今手作業でやってたんですが、ほんと助かりました!
ありがとうございました!


>Sheet1、Sheet2共に列見出しが在る物とします
>
>Option Explicit
>
>Public Sub DataMatch3()
>
>'  同一データのチェック
>'  Dictionary版
>
>  'Sheet1のデータ列数(A列)
>  Const clngColumns1 As Long = 1
>  'Sheet1のKey列(A列)の位置設定(基準位置からの列Offset)
>  Const clngKey1 As Long = 0
>  
>  'Sheet2のデータ列数(A列〜B列)
>  Const clngColumns2 As Long = 2
>  'Sheet2のKey列(A列)の位置設定(基準位置からの列Offset)
>  Const clngKey2 As Long = 0
>  
>  Dim i As Long
>  Dim rngList1 As Range
>  Dim lngRows1 As Long
>  Dim vntKeys1 As Variant
>  Dim rngList2 As Range
>  Dim lngRows2 As Long
>  Dim vntKeys2 As Variant
>  Dim rngResult As Range
>  Dim lngWrite As Long
>  Dim dicIndex As Object
>  Dim strProm As String
>
>  'Sheet1データシートのA1を基準とします
>  Set rngList1 = Worksheets("Sheet1").Range("A1")
>  
>  'Sheet2データシートのA1を基準とする
>  Set rngList2 = Worksheets("Sheet2").Range("A1")
>  
>  'Sheet3結果シートのA1を基準とする
>  Set rngResult = Worksheets("Sheet3").Range("A1")
>
>  'Dictionaryオブジェクトを取得
>  Set dicIndex = CreateObject("Scripting.Dictionary")
>  
>  '画面更新を停止
>  Application.ScreenUpdating = False
>    
>  'Sheet1の基準に就いて、Key列データと行数取得
>  If Not GetBasicData(rngList1, lngRows1, clngKey1, vntKeys1) Then
>    strProm = rngList1.Parent.Name & "にデータが有りません"
>    GoTo Wayout
>  End If
>  
>  'Sheet2の基準に就いて、Key列データと行数取得
>  If Not GetBasicData(rngList2, lngRows2, clngKey2, vntKeys2) Then
>    strProm = rngList2.Parent.Name & "にデータが有りません"
>    GoTo Wayout
>  End If
>  
>  'Sheet2のKeyデータと行位置をDictionaryに登録
>  With dicIndex
>    '最終行に達するまで繰り返し
>    For i = 1 To lngRows2
>      'Dictionaryに登録
>      .Item(vntKeys2(i, 1)) = i
>    Next i
>    'Sheet1のKeyデータをDictionaryで比較し在ったら転記
>    For i = 1 To lngRows1
>      'Dictionaryに登録が有る場合集計
>      If .Exists(vntKeys1(i, 1)) Then
>        '出力位置を更新
>        lngWrite = lngWrite + 1
>        'Sheet3のA列にSheet2シートの該当行を出力
>        rngList2.Offset(.Item(vntKeys1(i, 1))).Resize(, clngColumns2).Copy _
>            Destination:=rngResult.Offset(lngWrite)
>      End If
>    Next i
>  End With
>  
>  strProm = "処理が完了しました"
>  
>Wayout:
>  
>  '画面更新を再開
>  Application.ScreenUpdating = True
>  
>  Set dicIndex = Nothing
>  Set rngList1 = Nothing
>  Set rngList2 = Nothing
>  Set rngResult = Nothing
>  
>  MsgBox strProm, vbInformation
>  
>End Sub
>
>Private Function GetBasicData(rngList As Range, _
>                lngRows As Long, _
>                lngKeys As Long, _
>                vntData As Variant) As Boolean
>
>  '基準に就いて
>  With rngList
>    '行数を取得
>    lngRows = .Offset(Rows.Count - .Row, lngKeys).End(xlUp).Row - .Row
>    'データが無ければFunctionを抜ける(戻り値=False)
>    If lngRows <= 0 Then
>      Exit Function
>    End If
>    '比較用配列にデータを取得
>    vntData = .Offset(1, lngKeys).Resize(lngRows + 1).Value
>  End With
>  
>  GetBasicData = True
>
>End Function

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