Excel VBA質問箱 IV

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

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


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

【56061】同列内で同じ文字列があるか探す にっちー 08/5/31(土) 12:42 質問[未読]
【56063】Re:同列内で同じ文字列があるか探す kanabun 08/5/31(土) 14:02 発言[未読]
【56067】Re:同列内で同じ文字列があるか探す kanabun 08/5/31(土) 17:10 発言[未読]
【56068】Re:同列内で同じ文字列があるか探す にっちー 08/5/31(土) 17:20 発言[未読]
【56069】Re:同列内で同じ文字列があるか探す kanabun 08/5/31(土) 17:42 発言[未読]
【56070】Re:同列内で同じ文字列があるか探す kanabun 08/5/31(土) 17:49 発言[未読]
【56071】Re:同列内で同じ文字列があるか探す kanabun 08/5/31(土) 19:00 発言[未読]

【56061】同列内で同じ文字列があるか探す
質問  にっちー  - 08/5/31(土) 12:42 -

引用なし
パスワード
   はじめまして。

今テキストファイルを読み込んで、A列に人名、B列に和暦の年月日、C列に合計スコアD列に1ゲームのスコア、E列に2ゲームのスコア、F列に3ゲーム目のスコアを取り込むソフトを作っています。このテキストファイルには、同じ名前(同一人物)が2度記載されてることがあります。そこで、年月日の新しい物だけをエクセルに取り込みたいです。今は、

Private Sub CommandButton1_Click()

Dim AA As String, BB(6) As String,Dim X As Long

Open "A:得点一覧.txt " For Input As #1

  Do Until EOF(1)
   Line Input #1, AA
   X = X + 1
    BB(1) = Trim(Mid(AA, 1, 10))'------------------------人物名
    BB(2) = StrConv(Trim(Mid(AA, 11, 10)), vbNarrow)'----和暦の年月日
    BB(3) = StrConv(Trim(Mid(AA, 21, 5)), vbNarrow)'-----合計得点
    BB(4) = StrConv(Trim(Mid(AA, 26, 5)), vbNarrow)'-----1ゲーム目の得点
    BB(5) = StrConv(Trim(Mid(AA, 31, 5)), vbNarrow)'-----2ゲーム目の得点
    BB(6) = StrConv(Trim(Mid(AA, 36, 5)), vbNarrow)'-----3ゲーム目の得点
    Cells(X, 1) = BB(1)
    Cells(X, 2) = BB(2)
    Cells(X, 3) = BB(3)
    Cells(X, 4) = BB(4)
    Cells(X, 5) = BB(5)
    Cells(X, 6) = BB(6)
    ActiveSheet.UsedRange.Columns.AutoFit
 Loop
Close #1
End Sub
として、全部を読み込むことはできたのですが、この後、A列に同じ文字列があるかの検索と、在った場合のその後B列での年月日の比較、さらにその後のC〜F列へのB列で年月日が新しかった方の格納方法がわかりません。よろしくお願いします。

【56063】Re:同列内で同じ文字列があるか探す
発言  kanabun  - 08/5/31(土) 14:02 -

引用なし
パスワード
   ▼にっちー さん:
はじめまして。

とりあえず、
手作業でやるとしたらどういう手順になるか、考えてみました。

▼テキストファイルからシートに展開した表の先頭に
 見出しをつけます。

氏名  日付    合計点 1G目 2G目 3G目
AA   H19.12.10   135   35   45   55
BB   H19.12.10   105   30   20   55
AA   H19.12.30   140   35   45   60
BB   H19.12.30   130   40   30   60
AA   H20.1.10   185   50   60   75
BB   H20.1.5    175   60   70   45
CC   H20.2.4    220   65   75   80
AA   H20.4.1    190   70   50   70


▼これをソートします。
 1行目は見出し
 優先順位1 :A列 昇順
 優先順位2 :B列 降順
こんな風に並び替えられます。

氏名  日付    合計点 1G目 2G目 3G目
AA   H20.4.1    190   70   50   70
AA   H20.1.10   185   50   60   75
AA   H19.12.30   140   35   45   60
AA   H19.12.10   135   35   45   55
BB   H20.1.5    175   60   70   45
BB   H19.12.30   130   40   30   60
BB   H19.12.10   105   30   20   55
CC   H20.2.4    220   65   75   80

▼A列の1行目「氏名」から最終行まで選択して
 データメニュー> フィルタ>フィルタオプションの設定
 「重複するレコードは無視する」にチェックを入れて [OK]
 これで氏名がユニークになり先頭のレコードだけが表示されます。
 ので、マウスで表示されている範囲をコピーして
 適当なところに貼り付けます。
 
氏名  日付    合計点 1G目 2G目 3G目
AA   H20.4.1    190   70   50   70
BB   H20.1.5    175   60   70   45
CC   H20.2.4    220   65   75   80

マクロでやるとしたら、まずはこれらの操作のマクロの記録でしょうか?

【56067】Re:同列内で同じ文字列があるか探す
発言  kanabun  - 08/5/31(土) 17:10 -

引用なし
パスワード
   ▼にっちー さん:

> もしマルチポストをするのなら、可能な限り「○○にも同じ質問を出しました」> ということを宣言してください。そして、仮に他のサイトで解決したのなら、こ> こにも必ずその顛末を書いてください。質問しっぱなし、というのはモラルに反> します。「解決したからいいや」というのではありません。

【56068】Re:同列内で同じ文字列があるか探す
発言  にっちー  - 08/5/31(土) 17:20 -

引用なし
パスワード
   ▼kanabun さん:

あやや、これは申し訳ありません。書込ボタンを押したときに、画面がかわったのですが、その画面が、書き込めなかったようなエラーメッセージだったので、てっきり書き込めなかったと思ってしまい、ほかのサイトにいってしまいました。

申し訳ありませんでした。

いまだ、解決しておらず、ただいま考察中です。

【56069】Re:同列内で同じ文字列があるか探す
発言  kanabun  - 08/5/31(土) 17:42 -

引用なし
パスワード
   ▼にっちー さん:

>いまだ、解決しておらず、ただいま考察中です。

ところで、他の掲示板によると、

> =======================
> 坂田一成     200527    334 
> 相模優      200527    295 
> 長谷川俊夫    200527    364 

というようなデータということですが、
数値も全部 「全角」 なのですか?

【56070】Re:同列内で同じ文字列があるか探す
発言  kanabun  - 08/5/31(土) 17:49 -

引用なし
パスワード
   >数値も全部 「全角」 なのですか?

失礼しました。
元のテキストファイルのデータが全角なので、
StrConv( ,vbNarrow) 処理をしている。
セルには 半角の数値が入っている、
ということだったのでしたか。。

【56071】Re:同列内で同じ文字列があるか探す
発言  kanabun  - 08/5/31(土) 19:00 -

引用なし
パスワード
   ▼にっちー さん:

>いまだ、解決しておらず、ただいま考察中です。

ということですが、テキストファイルデータをシート上に
半角に変換して展開するところまではできているわけですから、

(1)見出しを挿入
(2)A列とB列でソート
(3)フィルタオプション

を、実際に試されてみることが次のステップかと、思うのですが。。。

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