Excel VBA質問箱 IV

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

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


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

【38502】特定の文字が入ったデータ削除 an 06/6/5(月) 13:40 質問[未読]
【38503】Re:特定の文字が入ったデータ削除 ハト 06/6/5(月) 13:56 回答[未読]
【38507】Re:特定の文字が入ったデータ削除 an 06/6/5(月) 14:22 お礼[未読]
【38504】Re:特定の文字が入ったデータ削除 ハチ 06/6/5(月) 13:59 発言[未読]
【38508】Re:特定の文字が入ったデータ削除 an 06/6/5(月) 14:25 お礼[未読]
【38509】Re:特定の文字が入ったデータ削除 ハチ 06/6/5(月) 14:34 発言[未読]
【38540】Re:特定の文字が入ったデータ削除 an 06/6/6(火) 10:47 質問[未読]
【38552】Re:特定の文字が入ったデータ削除 ハチ 06/6/6(火) 12:27 回答[未読]
【38557】Re:特定の文字が入ったデータ削除 an 06/6/6(火) 13:21 質問[未読]
【38560】Re:特定の文字が入ったデータ削除 ハチ 06/6/6(火) 13:49 発言[未読]
【38565】Re:特定の文字が入ったデータ削除 an 06/6/6(火) 14:11 お礼[未読]
【38582】Re:特定の文字が入ったデータ削除 an 06/6/6(火) 17:14 質問[未読]
【38583】Re:特定の文字が入ったデータ削除 ハチ 06/6/6(火) 18:03 回答[未読]
【38668】Re:特定の文字が入ったデータ削除 an 06/6/8(木) 10:24 質問[未読]
【38669】Re:特定の文字が入ったデータ削除 ハチ 06/6/8(木) 10:44 発言[未読]
【38670】Re:特定の文字が入ったデータ削除 Jaka 06/6/8(木) 10:55 発言[未読]
【38672】Re:特定の文字が入ったデータ削除 ハチ 06/6/8(木) 11:42 発言[未読]
【38676】Re:特定の文字が入ったデータ削除 Jaka 06/6/8(木) 12:40 発言[未読]
【38677】Re:特定の文字が入ったデータ削除 ハチ 06/6/8(木) 12:47 発言[未読]
【38692】Re:特定の文字が入ったデータ削除 an 06/6/8(木) 16:26 質問[未読]

【38502】特定の文字が入ったデータ削除
質問  an  - 06/6/5(月) 13:40 -

引用なし
パスワード
   いつもこの掲示板に助けられている者です。
今回も思ったように動いてくれず、大変困っています。

14列目にaaaとbbb    というデータがあったら削除する
コードを書いています。
但し、bbbは1文字目に空白がなぜか入ってしまい
削除できないデータがあることが判明しました。
TRIM関数を書きましたが、取り除けないので
下のようなコードに変えましたが、やはり削除
できません。
お分かりになる方がいらっしゃいましたら、アドバイス
頂けると助かります。

宜しくお願いいたします。

    検索データ1 = "aaa"
      検索データ2 = "bbb"

          Sheets("test").Select
          ActiveSheet.Range("A" & Rows.Count).End(xlUp).Select
          Lastrowno = ActiveCell.Row
      For i = 6 To Lastrowno + 10
    
      If Cells(i, 1).Value = 検索データ1 Then
        
        Range("A" & i & ":N" & i).Select
        Selection.Delete (xlShiftUp)
                
      End If
   
      Next i
 
 
      For i = 6 To Lastrowno + 3
    
      If Cells(i, 14).Text = "*" & 検索データ2 & "*" Then
        
        Range("A" & i & ":N" & i).Select
        Selection.Delete (xlShiftUp)
                
      End If
   
      Next i

【38503】Re:特定の文字が入ったデータ削除
回答  ハト  - 06/6/5(月) 13:56 -

引用なし
パスワード
   こんにちは

▼an さん:
>いつもこの掲示板に助けられている者です。
>今回も思ったように動いてくれず、大変困っています。
>
>14列目にaaaとbbb    というデータがあったら削除する
>コードを書いています。
>但し、bbbは1文字目に空白がなぜか入ってしまい
>削除できないデータがあることが判明しました。
>TRIM関数を書きましたが、取り除けないので
>下のようなコードに変えましたが、やはり削除
>できません。
>お分かりになる方がいらっしゃいましたら、アドバイス
>頂けると助かります。

ワイルドカードを使う時には = ではだめです
Like を使います   

>      If Cells(i, 14).Text = "*" & 検索データ2 & "*" Then
↓        
      If Cells(i, 14).Text Like "*" & 検索データ2 & "*" Then

これで試してみてください

【38504】Re:特定の文字が入ったデータ削除
発言  ハチ  - 06/6/5(月) 13:59 -

引用なし
パスワード
   ▼an さん:
    
If Cells(i, 1).Value = 検索データ1 Then '←これは14列目になってませんが?

>For i = 6 To Lastrowno + 10 '
>For i = 6 To Lastrowno + 3 '←この補正値はなんでしょう?

【38507】Re:特定の文字が入ったデータ削除
お礼  an  - 06/6/5(月) 14:22 -

引用なし
パスワード
   ▼ハト さん:
ありがとうございました!!
完璧に出来ました!
勉強になりました。
スキルが上がらず、今後もお世話になるかと
思いますが、お願いいたします。

【38508】Re:特定の文字が入ったデータ削除
お礼  an  - 06/6/5(月) 14:25 -

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

すみません、aaaは一列目でした。

>>For i = 6 To Lastrowno + 3 '←この補正値はなんでしょう?
元データに必ずごみのようなデータが混ざるので
補正しました。(質問箱では余分でしたね。)
大変申し訳ありませんでした。

【38509】Re:特定の文字が入ったデータ削除
発言  ハチ  - 06/6/5(月) 14:34 -

引用なし
パスワード
   ▼an さん:
>▼ハチ さん:
>
>すみません、aaaは一列目でした。
>
>>>For i = 6 To Lastrowno + 3 '←この補正値はなんでしょう?
>元データに必ずごみのようなデータが混ざるので
>補正しました。(質問箱では余分でしたね。)
>大変申し訳ありませんでした。

いえいえ^^
削除、追加系のループを上から回すと最後のほうで列があわなくなりますよ。
その補正なのかなー と思っていたのですが・・
For i = Lastrowno + 3 To 6 Step -1
2行連続で対象だとチェックできない行が出ているのではないかと思います。

【38540】Re:特定の文字が入ったデータ削除
質問  an  - 06/6/6(火) 10:47 -

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

ありがとうございました。

別トピックを立てたほうがいいと思いますが、
図々しく質問しても良いでしょうか?

テンプレートファイルを作っていろいろなマクロ処理し、
そのテンプレートファイルの中の4枚のシートをコピーして
保存後、特定の数人に添付ファイルで送る操作を毎月しています。
(今回の質問もその処理のうちの一つです)
そこでですが、印刷マクロ(モジュール)も添付ファイルに
コピーして送ることは出来ますか?
ボタンを押したら各シート一度に印刷できるようにしたいのです。
お分かりでしたらアドバイス頂けると助かります。

現在のコピー部分のコード↓

Dim myfolder As String, mycode As String
      Const mypath As String = "\\test\"
    
      With Sheets(Array("abc", "def", "ghi", "jkl"))
       
       .Copy
      End With
     Dim foldnm As String
     myfolder = Sheets("abc").Range("D2").Value
     mycode = Sheets("def").Range("E2") & "-"
     mycode2 = Sheets("ghi").Range("F2")
     ActiveWorkbook.SaveAs Filename:=mypath & myfolder & mycode & mycode2 & ".xls"
     ActiveWorkbook.Close

宜しくお願いします。

【38552】Re:特定の文字が入ったデータ削除
回答  ハチ  - 06/6/6(火) 12:27 -

引用なし
パスワード
   ▼an さん:
>▼ハチ さん:
>テンプレートファイルを作っていろいろなマクロ処理し、
>そのテンプレートファイルの中の4枚のシートをコピーして
>保存後、特定の数人に添付ファイルで送る操作を毎月しています。
>(今回の質問もその処理のうちの一つです)
>そこでですが、印刷マクロ(モジュール)も添付ファイルに
>コピーして送ることは出来ますか?
>ボタンを押したら各シート一度に印刷できるようにしたいのです。
>お分かりでしたらアドバイス頂けると助かります。

Excel2002以降はVBprojectの操作は、基本的にはできません。
印刷モジュールを記載済みのテンプレートを作って
そこにコピーしてはどうでしょうか?


>With Sheets(Array("abc", "def", "ghi", "jkl")).Copy

テンプレ上には、Sheet 1枚にしておいて、

Sheets(Array("abc", "def", "ghi", "jkl")).Copy Before:= _
Workbooks.Add(Template:="ここにテンプレート名").Worksheets(1)
WorkSheets(1).Delete

AddしたタイミングでActiveなBookが切り替わる(試してないんですが・・)かも
しれませんからSheets(Array("abc・・ の前に
オブジェクト名(ThisWork. など)を入れておいたほうがいいかも知れません。

【38557】Re:特定の文字が入ったデータ削除
質問  an  - 06/6/6(火) 13:21 -

引用なし
パスワード
   ▼ハチ さん:
早速回答頂き、ありがとうございます<m(__)m>

試してみましたが、4枚ではなく全てのシートがコピー・保存
されてしまいました。

原因が分かりません。

>印刷モジュールを記載済みのテンプレートを作って
>そこにコピーしてはどうでしょうか?

テンプレートは同じディレクトリに作るということで
よろしいでしょうか?

【38560】Re:特定の文字が入ったデータ削除
発言  ハチ  - 06/6/6(火) 13:49 -

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

>試してみましたが、4枚ではなく全てのシートがコピー・保存
>されてしまいました。

テンプレートを使用してのマクロの転記はできましたか?

test.xltをこのbookと同じフォルダに作成し、
試してみましたが無事できました。
After:= ですね・・失礼しました。

Sub test()

ThisWorkbook.Sheets(Array("a", "b")).Copy After:= _
Workbooks.Add(Template:=ThisWorkbook.Path & "\test.xlt").Worksheets(1)
Worksheets(1).Delete

End Sub

【38565】Re:特定の文字が入ったデータ削除
お礼  an  - 06/6/6(火) 14:11 -

引用なし
パスワード
   ▼ハチ さん

完璧に出来ました!!

本当にありがとうございます<m(__)m>

今後とも宜しくお願いいたします。

【38582】Re:特定の文字が入ったデータ削除
質問  an  - 06/6/6(火) 17:14 -

引用なし
パスワード
   ▼ハチ さん:
すみません<m(__)m>
一つ難題がおきました!!

4枚のシートのうち1枚目のシートに印刷
マクロボタンを作っているのですが、
そのボタンを押すと”test1”がみつかりません”
と表示され実行できません。
ボタンのマクロ割り当てをどのようにすれば良いでしょうか?

【38583】Re:特定の文字が入ったデータ削除
回答  ハチ  - 06/6/6(火) 18:03 -

引用なし
パスワード
   ▼an さん:
>▼ハチ さん:
>すみません<m(__)m>
>一つ難題がおきました!!
>
>4枚のシートのうち1枚目のシートに印刷
>マクロボタンを作っているのですが、
>そのボタンを押すと”test1”がみつかりません”
>と表示され実行できません。
>ボタンのマクロ割り当てをどのようにすれば良いでしょうか?

表題とドンドンかけ離れていきますが・・
ボタンはフォームですか?コントロールですか?
動かしたいマクロ名を"Print_test"
Worksheets("a")にボタンがあると仮定すると

フォームの場合
コピーのマクロの最後の下記を追記

'ボタンの名前は、マクロの記録で確認してください。
Worksheets("a").Shapes("Button 1").OnAction = _
ActiveWorkbook.Name & "!Print_test"

コントロール場合
たぶん問題は発生していないと思いますがSheetモジュールに

Private Sub CommandButton1_Click()
Call Print_test
End Sub

こんな感じでどうでしょう?

【38668】Re:特定の文字が入ったデータ削除
質問  an  - 06/6/8(木) 10:24 -

引用なし
パスワード
   ▼ハチ さん:
質問者です。
昨日お休みし,お礼が遅くなり申し訳ありませんでした。

試してみましたところ、新しく出来たコピーした
ファイルを開くときに警告文(マクロを有効にする・・・)
が出て(それはマクロファイルなので当たり前ですが)、
印刷コマンドボタンを押下するとまた無効か有効か選択する
警告文が出ます。
ボタンを押下したときには、その警告文が出ずに印刷
できるようにするのは難しいでしょうか?

何度も本当に申し訳ありません。

【38669】Re:特定の文字が入ったデータ削除
発言  ハチ  - 06/6/8(木) 10:44 -

引用なし
パスワード
   ▼an さん:
>▼ハチ さん:
>質問者です。
>昨日お休みし,お礼が遅くなり申し訳ありませんでした。
>
>試してみましたところ、新しく出来たコピーした
>ファイルを開くときに警告文(マクロを有効にする・・・)
>が出て(それはマクロファイルなので当たり前ですが)、
>印刷コマンドボタンを押下するとまた無効か有効か選択する
>警告文が出ます。
>ボタンを押下したときには、その警告文が出ずに印刷
>できるようにするのは難しいでしょうか?
>
>何度も本当に申し訳ありません。

ボタンは、フォームでしたか?コントロールでしたか?

フォームだとすると・・
Worksheets("a").Shapes("Button 1").OnAction = _
ActiveWorkbook.Name & "!Print_test" 
'↑このActiveWorkbookが自分が思っている。新しいBookになっていないのかも・・

ボタンをコントロールで作り直して
↓ではダメですか?

Private Sub CommandButton1_Click()
Call Print_test
End Sub

【38670】Re:特定の文字が入ったデータ削除
発言  Jaka  - 06/6/8(木) 10:55 -

引用なし
パスワード
   全部読んでないので良く解ってないけど、

シート上のフィームボタン等にマクロ登録する時の注意。
こうしておけば、ブック名の移動、複製、変更等全てに対応できます。
ボタンがあるブックにマクロがあるのなら.....。
わざわざ、マクロで再度登録するような物じゃないです。

[マクロの保存先]は、
開いている全てのブック
作業中のブック     ←この作業中のブックを選ぶ
Book1Book2.xls など

【38672】Re:特定の文字が入ったデータ削除
発言  ハチ  - 06/6/8(木) 11:42 -

引用なし
パスワード
   ▼Jaka さん:
>全部読んでないので良く解ってないけど、
>
>シート上のフィームボタン等にマクロ登録する時の注意。
>こうしておけば、ブック名の移動、複製、変更等全てに対応できます。
>ボタンがあるブックにマクロがあるのなら.....。
>わざわざ、マクロで再度登録するような物じゃないです。
>
>[マクロの保存先]は、
>開いている全てのブック
>作業中のブック     ←この作業中のブックを選ぶ
>Book1Book2.xls など

フォローありがとうございます。

今回、
マクロを記載済みのテンプレート(.xlt)で作成されたBook("A")に
フォームボタンのあるSheetをコピーして
Book("A")のマクロを登録する。

というやり方になってますので、省略すると元Book!になってしまい
上手くいきませんでした。
良い方法が思いつきません。

作成されたオブジェクトBook("A")をつかんでおいて、
.Name & "!マクロ名"とするのが良いですか?

【38676】Re:特定の文字が入ったデータ削除
発言  Jaka  - 06/6/8(木) 12:40 -

引用なし
パスワード
   >今回、
>マクロを記載済みのテンプレート(.xlt)で作成されたBook("A")に
>フォームボタンのあるSheetをコピーして
>Book("A")のマクロを登録する。
え、こんなになっているの。
何でテンプレートファイルに直にマクロを書かないの...。
(内容の解らない物にでしゃばる物じゃないなぁ!)

新規ブックに別ブックのマクロボタンの付いたシートをコピー挿入しているような物じゃないですか...。
別ブックのマクロを登録されたボタンをそのまま持っていっているから、ボタンはコピー物のファイルを見に行くのは当然だろうし、
この場合なら、
[マクロの保存先]
開いている全てのブック
作業中のブック
Book1Book2.xls など  ←これを選ぶべきでしょうね!(このブックにマクロが書いてあるなら)

なんか仕様がわからなくなってきました。
素直にテンプレートにマクロを書いておいたほうが、良いと思いますけど....。
テンプレートで出来たファイルにマクロが無いのにマクロボタンだけつけるって事ですよね???

コピー元のブックが移動されたり、名前を変えられたらtどうするのでしょうか?

で、私としては、仕様を考え直した方が良いと思います。
(処理内容がわかってないけど...)

【38677】Re:特定の文字が入ったデータ削除
発言  ハチ  - 06/6/8(木) 12:47 -

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

こんな感じだったのですが。
マクロボタンを作ったSheetを残しておけば良かったですね・・・

▼an さん:
>▼ハチ さん:
>テンプレートファイルを作っていろいろなマクロ処理し、
>そのテンプレートファイルの中の4枚のシートをコピーして
>保存後、特定の数人に添付ファイルで送る操作を毎月しています。
>(今回の質問もその処理のうちの一つです)
>そこでですが、印刷マクロ(モジュール)も添付ファイルに
>コピーして送ることは出来ますか?
>ボタンを押したら各シート一度に印刷できるようにしたいのです。
>お分かりでしたらアドバイス頂けると助かります。

Excel2002以降はVBprojectの操作は、基本的にはできません。
印刷モジュールを記載済みのテンプレートを作って
そこにコピーしてはどうでしょうか?

>With Sheets(Array("abc", "def", "ghi", "jkl")).Copy

テンプレ上には、Sheet 1枚にしておいて、

Sheets(Array("abc", "def", "ghi", "jkl")).Copy After:= _
Workbooks.Add(Template:="ここにテンプレート名").Worksheets(1)
WorkSheets(1).Delete

AddしたタイミングでActiveなBookが切り替わる(試してないんですが・・)かも
しれませんからSheets(Array("abc・・ の前に
オブジェクト名(ThisWorkbook. など)を入れておいたほうがいいかも知れません。

【38692】Re:特定の文字が入ったデータ削除
質問  an  - 06/6/8(木) 16:26 -

引用なし
パスワード
   ▼Jaka さん:
質問者です。
ありがとうございました。

テンプレートファイルには、マクロを書いてあります。

複数コードが入っている元ファイル(10枚のシート)の一部(4枚のシート)をテンプレートファイルにコピーして、別名で保存しそのファイルを電子メールで
複数の方に送るという処理を自動化しております。

印刷マクロボタン(フォーム)は、テンプレートファイルにコピーした
4枚のシートのうち、1枚目に作成しております。

そのマクロボタンが常に送信したファイルのマクロを参照するには
どのようにすれば良いでしょうか?

題名とかけ離れていますので、別ツリーを後でたてたいと思います。

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