C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.55360 の関連記事表示

<< 0 >>
■55360  エクセルのVBAにてデータを整理したい
□投稿者/ りぃ -(2010/11/28(Sun) 10:07:46)

    分類:[VB.NET/VB2005 以降] 

    こんにちは、お世話になります。

    エクセル(2007)で

    1.同じ列で、セルとほかのセルで名前が似ているものを検出することはできますか?
    2.VBAで行を削除するコマンドは存在しますか?
    3.1つの列をソートするのに1000行ほどある場合は処理が重たくなることはありますか?

    質問は以上の3つです。
    よろしく願い致します。

    (環境はWindows7,Excel2007です)


親記事 /過去ログ93より / 関連記事表示
削除チェック/

■55363  Re[1]: エクセルのVBAにてデータを整理したい
□投稿者/ よねKEN -(2010/11/28(Sun) 13:06:06)
    No55360 (りぃ さん) に返信
    > 1.同じ列で、セルとほかのセルで名前が似ているものを検出することはできますか?

    「似ている」のルール(仕様)を明確化し、そのルール通りに実装すれば検出できるでしょう。

    > 2.VBAで行を削除するコマンドは存在しますか?

    あります。「VBA 行 削除」で検索すれば方法もわかります。

    > 3.1つの列をソートするのに1000行ほどある場合は処理が重たくなることはありますか?

    PCのスペックとプログラムの組み方次第です。
    具体的にどんなスペックでどんなプログラムだとどうなるかは計測しなければわかりません。
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/

■55373  Re[1]: エクセルのVBAにてデータを整理したい
□投稿者/ shu -(2010/11/28(Sun) 21:22:16)
    No55360 (りぃ さん) に返信

    エクセルのVBAでプログラムする場合、マクロの記録が結構役に立ちます。
    例えば
    マクロの記録を開始して行の削除を行うと

    Rows("9:9").Select
    Selection.Delete Shift:=xlUp

    こういうVBAプログラムが出来上がります。
    ここでRows("9:9").Selectと
    次の行のSelectionに注目して
    Rows("9:9").Delete Shift:=xlUp
    と置き換えることが出来ることを覚えておくとよいかと思います。
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/

■55434  Re[2]: エクセルのVBAにてデータを整理したい
□投稿者/ りぃ -(2010/12/02(Thu) 05:51:33)
    お返事遅くなりまして申し訳ございません。
    りぃです。お返事ありがとうございます。

    実は、電話帳を整理していて、電話番号のところで躓いています。
    1.セルに入れた電話番号からハイフン(−)を取り除いて、
    2.COUNTIF文で重複をチェックして、
    3.1000行ほどの電話番号と人の名前を整理しています。

    1.に関してVBAでハイフンを取り除くにはどうしたらよいでしょうか?
    2.に関してCOUNTIFよりも速度の速い関数はありますか?
    3.に関してCOUNTIFを使って1000行は重たくなるでしょうか?

    使用しているエクセルはExcel2007です。
    よろしくお願いいたします。
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/

■55435  Re[3]: エクセルのVBAにてデータを整理したい
□投稿者/ ごう -(2010/12/02(Thu) 09:00:12)
    No55434 (りぃ さん) に返信

    > 1.に関してVBAでハイフンを取り除くにはどうしたらよいでしょうか?

    ご自分で「文字列を引数として渡し、数字のみを返す」関数を作る必要があると思います。
    関数の作り方はわかりますか?

    > 2.に関してCOUNTIFよりも速度の速い関数はありますか?
    > 3.に関してCOUNTIFを使って1000行は重たくなるでしょうか?

    貴殿の希望の処理時間(1000行を何秒以内で処理したいか?)がわからないのでなんともいえませんが
    まず、試してみて遅すぎるor問題ないを判断してみてはいかがでしょうか。
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/

■55451  Re[3]: エクセルのVBAにてデータを整理したい
□投稿者/ shu -(2010/12/02(Thu) 16:26:51)
    No55434 (りぃ さん) に返信
    > 1.に関してVBAでハイフンを取り除くにはどうしたらよいでしょうか?
    VBAならReplace
     Replace("ab-c","-","") => abc

    シート関数ならSUBSTITUTE
    A1の内容:aaa-bbb
    =SUBSTITUTE(A1,"-","") => aaabbb

    を使用すればハイフンを空文字に変換出来ます。
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/

■55524  Re[4]: エクセルのVBAにてデータを整理したい
□投稿者/ りぃ -(2010/12/05(Sun) 14:47:10)
    No55451 (shu さん) に返信

    お返事遅くなりまして申し訳御座いません。

    Replace関数は私のエクセル(2007)では対応していませんでした。
    (正確には、関数の型が違っていたようです)

    しかし、SUBSTITUTE関数ではうまくいきました。
    ありがとうございます。

    目標としては、VBA上でハイフンを取り除けばよいのですが、
    いくつサイトを見てもそのような関数は存在しないようなので、
    ここでピリオドにしたいと思います。

    どうもありがとうございました。
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/

■55525  Re[5]: エクセルのVBAにてデータを整理したい
□投稿者/ 魔界の仮面弁士 -(2010/12/05(Sun) 15:20:03)
    No55524 (りぃ さん) に返信
    >> VBAならReplace
    >>  Replace("ab-c","-","") => abc
    > Replace関数は私のエクセル(2007)では対応していませんでした。

    もしかして、ワークシート関数と勘違いしておられませんか?


    > (正確には、関数の型が違っていたようです)
    Excel 2007 であれば、
      『VBA の Replace 関数』
      『ワークシート関数 REPLACE』
    のいずれも使えます。戻り値の型は、VBA 版/ワークシート関数版ともに「文字列型」です。
    ちなみに VBA 版の Replace は、Excel 2000 からの対応です(Excel 97 では不可)。

    引数については、ワークシート関数の方は、引数が4つで
     文字列「置換元のデータ」
     数値 「開始位置」
     数値 「置換する文字数」
     文字列「置き換える文字列」
    となっています。

    一方、VBA 版の方は、引数が3〜6個で
     文字列「置換元のデータ」
     文字列「置き換わる検索文字列」
     文字列「置き換える置換文字列」
     整数 「置換する際の開始位置(省略時は1)」
     整数 「置き換える回数(省略時は全候補を置換)」
     列挙値「比較方法(省略可)…VbCompareMethod」
    です。
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/

■55526  Re[6]: エクセルのVBAにてデータを整理したい
□投稿者/ 魔界の仮面弁士 -(2010/12/05(Sun) 16:43:33)
    No55525 (魔界の仮面弁士) に追記
    > ■No55524 (りぃ さん) に返信
    >>Replace関数は私のエクセル(2007)では対応していませんでした。
    >>(正確には、関数の型が違っていたようです)
    > もしかして、ワークシート関数と勘違いしておられませんか?
    あるいは、セル(Range オブジェクト)の Replace メソッドと混同している可能性とか。
    Replace メソッドの場合、戻り値がブール型で、引数は2〜8個ですので。

    VBA の Replace 関数の使い方については、No55451 の shu さんの記述で問題無いはず…。


    '元データ
    Sheet1.Range("A1:B6").Value = "ab-c"

    'Replace 関数
    Sheet1.Range("B1").Value = Replace(Sheet1.Range("B1").Value, "-", "")

    'Replace メソッド
    Sheet1.Range("B2").Replace "-", ""

    'ワークシート関数REPLACE(WorksheetFunction オブジェクト)
    Sheet1.Range("B3").Value = WorksheetFunction.Replace(Sheet1.Range("A3").Value, 3, 1, "")

    'ワークシート関数REPLACE(式)
    Sheet1.Range("B4").FormulaR1C1 = "=REPLACE(RC[-1], 3, 1, """")"

    'ワークシート関数SUBSTITUTE(WorksheetFunction オブジェクト)
    Sheet1.Range("B5").Value = WorksheetFunction.Substitute(Sheet1.Range("A5").Value, "-", "")

    'ワークシート関数SUBSTITUTE(式)
    Sheet1.Range("B6").FormulaR1C1 = "=SUBSTITUTE(RC[-1], ""-"", """")"
記事No.55360 のレス /過去ログ93より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -