Excel VBA質問箱 IV

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

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


67445 / 76738 ←次へ | 前へ→

【13849】Re:検索したデータを特定のシートへ貼り付ける
回答  Hirofumi E-MAIL  - 04/5/15(土) 7:31 -

引用なし
パスワード
   > 早速、ご指摘の内容について確認しました。
>こういう機能があるとは驚きました。すぐに、不具合な箇所がわかりました。
>ですが、対処の仕方がわかりません。

不具合の箇所が解って善かったですね?
この様な操作を、デバグ(バグ取り)と言ってコードを作る上ではしょちゅう行います
デバグ方法は人に因り、場合に因り違います
ただ、此れが出来ないとコードは組めません
Helpで、デバッグ、ブレークポイント、ウォッチ等を調べましょう!

此れにより、コードの修正が出来ます
まず、不具合に就いて説明して置きます

以下の部分で行っている操作に就いて

  '最初にIndexに追加されたシート番号に就いて
  With Worksheets(lngSheetNo)
    '店舗名を配列に取得
    vntData = Range(.Cells(clngDataTop, "B"), _
          .Cells(clngSheetEnd, "B").End(xlUp)).Value

B列の65536行(シートの最終行)にセルポインタを置き
一般操作で言う、「End」キー、「↑」キーを押してデータの最終行求をめ、
B列5行からB列データの最終行の値をvntDataと言う配列に読み込んでいます
当方としては、B列に店舗名しか無いと思っていましたが、
実際には店舗名の下にも何か入力されていたのですね?
此れにより、空白のセルが「同一の店舗名がある」と認識されコードが終了していました
其処で、店舗名だけを分離するのに、店舗名の下に「合計」が有る様なので此れを利用します

以下の様に、「Function MakeStoreIndex」を修正して下さい

Private Function MakeStoreIndex(dicStore As Object, _
              lngSheetNo As Long) As Boolean

'  店舗のIndexを作成

  '店舗データの先頭行位置を定数宣言
  Const clngDataTop As Long = 5
  
  Dim i As Long
  Dim vntData As Variant
  
  '最初にIndexに追加されたシート番号に就いて
  With Worksheets(lngSheetNo)
    '店舗名を配列に取得
    vntData = Range(.Cells(clngDataTop, "B"), _
          .Cells(clngSheetEnd, "B").End(xlUp)).Value
  End With
  '店舗Indexに就いて
  With dicStore
    '店舗名の先頭から終まで繰り返し
    For i = 1 To UBound(vntData, 1)
      '配列に「合計」が出てきたらForを抜ける ★この行追加
      If Trim(vntData(i, 1)) = "合計" Then '★この行追加
        Exit For             '★この行追加
      End If                '★この行追加
      '店舗名に「店」が付いていない場合
      If Right(vntData(i, 1), 1) <> "店" Then
        '「店」を追加
        vntData(i, 1) = vntData(i, 1) & "店"
      End If
      'Indexにi番目の店舗名が有るなら
      If .Exists(vntData(i, 1)) Then
        Beep
        MsgBox "同一の店名が有ります"
        Exit Function
      'i番目の店舗名が無いなら
      Else
        'Indexに店舗名と行位置を追加
        .Add vntData(i, 1), i + clngDataTop - 1
      End If
    Next i
  End With

  MakeStoreIndex = True
  
End Function


PS: 尚、ブレークポントに就いての仕様で、ビックリする物が有るので書いて置きます
 VBEで、ブレークポントを設定したまま、ExcelのBookを保存した場合
 次に、Bookを開いてマクロを実行すると、ブレークポントの表示が無いにも関わらず
 以前にブレークポントを設定した位置で、コードがブレーク(中断)します
 この場合、一旦実行をリセットして、中断した行にブレークポントを設定します
 次に、このブレークポントを解除(●をクリックするか、「デバッグ」→
 「すべてのブレークポントの解除」)し、「デバッグ」→「VBAProjectのコンパイル」
 を行い、Bookを保存すると回避できます

 後、04/5/15(土) 1:31の質問の中でコードが以下の様におかしく成っていますが
 気を付けて下さい

        'Indexに店舗名と行位置を追加
        .Add vntData(i, 1), i + clngDataTop &#8211; 1 ・・・6.

 またこのデータは、思わぬ所にスペースだの、何だの、まだ何か有りそうな気がしますので
 何か有れば諦めずに、聞いて下さい
0 hits

【13588】検索したデータを特定のシートへ貼り付ける ハルコ 04/5/8(土) 15:29 質問
【13597】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/9(日) 11:39 回答
【13608】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/9(日) 16:20 質問
【13613】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/9(日) 18:23 回答
【13617】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/9(日) 20:02 質問
【13618】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/9(日) 20:44 回答
【13620】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/9(日) 21:21 質問
【13664】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/10(月) 20:06 回答
【13666】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/10(月) 21:24 質問
【13668】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/10(月) 21:48 回答
【13669】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/10(月) 23:12 質問
【13719】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/11(火) 20:18 回答
【13721】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/11(火) 21:10 回答
【13722】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/11(火) 22:24 質問
【13755】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/12(水) 19:50 回答
【13760】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/12(水) 22:17 質問
【13801】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/13(木) 21:49 回答
【13845】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/15(土) 1:31 質問
【13849】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/15(土) 7:31 回答
【13889】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/15(土) 19:20 質問
【13895】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/15(土) 20:56 回答
【13900】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/15(土) 23:29 質問
【13901】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/16(日) 0:23 質問
【13903】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/16(日) 1:45 回答
【13909】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/16(日) 19:07 質問
【13910】Re:検索したデータを特定のシートへ貼り付... Hirofumi 04/5/16(日) 21:07 回答
【13911】Re:検索したデータを特定のシートへ貼り付... ハルコ 04/5/16(日) 22:48 お礼

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