プロが教える店舗&オフィスのセキュリティ対策術

エクセル2000を使っているのですが,マクロの使い方がよくわかりません.
コピーペーストしてきた大量の文字行列の先頭末尾に余分な空白があって正しくソートされません.そこで,Trimを使おうと思ったのですが,使い方がいまいちよくわからず,エラーが出て実行できません.
また,重複した内容のセルを抽出・削除もしたいのです.

どうぞ教えてくださいm(_ _)m

A 回答 (5件)

空白を削除するセルを選択して、下記のマクロを実行します。

空白を除いた文字に書き換えます。
蛇足ですが、セルを選択する時は、先頭セルを選択して、Shift+Ctrl+↓等で連続エリアが選択できます。
また、Ctrlキーを押しながらマウスで飛び飛びに選択できます。

Sub 空白を除去()
Dim rg As Range 'セル
For Each rg In Selection
rg = Trim(rg) '左右の空白を削除
Next
End Sub

Trimに関する関数には以下のものがあります。必要なものを使い分けてください。
  Trim(rg) 左右の空白を削除(VBA)
  RTrim(rg) 右の空白を削除(VBA)
  LTrim(rg) 左の空白を削除(VBA)
  Application.Trim(rg) 左右、途中の空白を削除(ワークシート関数)
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

そう、これです、もう、とっても感謝します(^^)

お礼日時:2001/07/02 14:19

選択範囲(単一列)に同じ値があると2つ目以降について、その行を削除してしまいます。



重複を調べる列のデータ範囲を選択して、下のマクロを実行します。
標準モジュールに貼り付ければ、どのシートについても実行できるはずです。質問の意味はこういうこと?

Sub 同一値がある行の削除()
Dim rg As Range '選択範囲
Dim cot As Long 'カウンタ
Set rg = Selection
Application.ScreenUpdating = False
With rg
For cot = .Count To 1 Step -1
If Application.CountIf(Range(.Cells(1, 1), .Cells(cot, 1)), .Cells(cot, 1)) > 1 Then
Rows(.Cells(cot, 1).Row).Select: Selection.Delete Shift:=xlUp
End If
Next
.Cells(1, 1).Select
End With
Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

たびたびありがとうございました。
おかげさまで、勉強もできましたし、目的も達成できましたm(__)m

お礼日時:2001/07/06 01:35

同一データの削除については、A1から下方向にデータがあるとすると、B1に


=IF(COUNTIF($A$1:A1,A1)>1,"*","")
として、データ分コピーします。あとはオートフィルタを使い「*」だけを出して削除すれば重複データを除けます。これもマクロで行いたい?

この回答への補足

マクロで出来るなら、教えてほしいと思います。。。度々すみません(^^;)

補足日時:2001/07/02 14:19
    • good
    • 1

Masazo-さんに便乗です。



下方向へのコピーが大量なら、セルB1の右下の■(フィルハンドルという)を
ダブルクリックするとOKです。(途中に空白があったらだめですけど)

確認にはCtrlキーを押したまま、↓キーを押すと最終行までジャンプできます。

> がいまいちよくわからず,エラーが出て実行できません.
このエラーが何なのか、気になります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
フィルハンド、知りませんでした。便利ですね!覚えておきます。

VisualBasicEditorでマクロを作ろうと思い、

Sub 空白を除去
(ここをどうにかしてセルの内容をTrimしたものと置き換えたい)
End Sub

をどうにかこうにかしたのですが、技術力不足のせいで出来ません(;;)

お礼日時:2001/07/02 11:44

Trimだけなら・・・。


A1に貼り付けた値に対して、B1に「=Trim(A1)」を設定します。
後は下方向にコピーする。

Trimだけなら、マクロではなく、ワークシート関数の方が楽です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
それでも出来ることは出来るのですが、文書が大量に(A~Zまで26個)あるので、マクロで出来たら便利かなと思っています。それに、=Trimでやると、Trimされたセルの内容をTrimされる前の内容とをコピペで置き換えられないんです(私には)。

他に方法はないでしょうか?

お礼日時:2001/07/02 11:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!