[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『結合したセルのオートフィルターで抽出する方法』(こた)
初めまして。VBA初心者です。
結合したセルをオートフィルターで抽出をマクロで出来たらと思っています。
下記のコードは、自分がやりたいことをマクロの記録で記録し
編集したものですが、ほぼそのままです(笑)
・結合セルC6〜C209
・抽出の項目A5〜G5
・抽出の表の範囲A5〜G209
・作業列 QK、QL
内容は、
1、作業列のセルQK6に=IF(C6="",QK5,C6)を挿入。
2、オートフィルでQK209までコピー。
3、QK6〜QK209まで選択してコピー。
4、隣の列QL6〜QL209を選択して「値」で貼り付け。
5、QL6〜QL209まで選択してコピー。
6、5を結合セルC6〜C209に「数式」で貼り付け。
7、D2から抽出したい文字列を読み取り、抽出。
8、作業列 QK、QLの数式及び値の削除
となっています。
このまま実行すると、「このブックでマクロが使用できないか、または全てのマクロが無効になっている可能性があります。」
とエラー表示が出てしまいました。
もちろん、マクロの設定等は何も変更していません。
コードが間違っているからだとは思うのですが、ご意見頂けたらと思います。
宜しくお願い致します。
Range("QK6").FormulaR1C1 = "=IF(RC[-450]="""",R[-1]C,RC[-450])" Range("QK6").AutoFill Destination:=Range("QK6:QK209"), Type:=xlFillDefault Range("QK6:QK209").Select
Selection.Copy Range("QL6:QL209").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Copy
Range("C6:C209").Select Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("A5:G5").Select Application.CutCopyMode = False ActiveCell.Range("A1:G1").Select Selection.AutoFilter ActiveSheet.Range("$A$5:$G$209").AutoFilter Field:=3, Criteria1:="*" & Range("D2").Value & "*"
Range("QK6:QL211").Select Selection.ClearContents
< 使用 Excel:Excel2013、使用 OS:Windows8 >
(少なくともアップされた)コード自体は(記述等、改善できるところはありますが)、このままコピペして動かすと C列が D2にある値を含むものだけになります。(エラーは一切出ません)
・このコード、 Sub から End Sub まで フルセット、アップされてはいかがでしょう。 ・このコードはどこに書かれているんでしょうか。 ・このブックの標準モジュールに以下を貼り付けて動かすと、動きますか?
Sub TestMsg() MsgBox "Hello" End Sub
(β) 2016/09/16(金) 22:31
To 東北さん
確かにマクロは xlsxブックには書けず、xlsmブックとしなければいけないのですが、この【書けず】というのは マクロを書いたあと、【保存できない】ということです。保存しようとすると、エクセルから、だめだよと叱られますね。
ですから、呼び出した xlsxブックにマクロが存在していることはありません。
ただし、xlsxブックを開いて、そこにモジュールを挿入してマクロを記述し、そのマクロを動かすことは可能ですよ。 ただ、この状態で保存はできませんが。
(β) 2016/09/17(土) 00:03
このブックでマクロが使用できないか、または全てのマクロが無効になっている可能性があります
この文章を、そのまま検索語にして検索しますといろいろ出てきます。 マクロ有効化に関するページもありますが、それ以外の、マクロ登録関係の操作間違いによるものもあります。
ざっと閲覧して、こた さんの状況にあたるものがないか、確認してみるのもいいかもしれません。
(β) 2016/09/17(土) 04:22
・このコードはどこに書かれているんでしょうか。
→このブックの標準モジュールです。
・このブックの標準モジュールに以下を貼り付けて動かすと、動きますか?
→動きました。
拡張子ですが.xlsm でした。
また、「このブックでマクロが使用できないか、または全てのマクロが無効になっている可能性があります」
の言葉でネットで検索してみましたが、拡張子のこと以外は理解できず「?」という感じです。
Sub から End Sub まで フルセット、アップさせて頂きます。
(模試の結果表を作成していますので、プロシージャ名は模試名です。)
ご指摘宜しくお願い致します。
Sub 進研、ベネッセ_名前抽出()
Range("QK6").FormulaR1C1 = "=IF(RC[-450]="""",R[-1]C,RC[-450])" Range("QK6").AutoFill Destination:=Range("QK6:QK209"), Type:=xlFillDefault Range("QK6:QK209").Select
Selection.Copy Range("QL6:QL209").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.Copy
Range("C6:C209").Select Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("A5:G5").Select Application.CutCopyMode = False ActiveCell.Range("A1:G1").Select Selection.AutoFilter ActiveSheet.Range("$A$5:$G$209").AutoFilter Field:=3, Criteria1:="*" & Range("D2").Value & "*"
Range("QK6:QL211").Select Selection.ClearContents
End Sub
(こた) 2016/09/17(土) 13:11
犯人はマクロ名 進研、ベネッセ_名前抽出() でしょうね。 マクロ名も大きく見れば変数名で、変数名として使っていい文字と使えない文字があります。
http://www.officetanaka.net/excel/vba/variable/06.htm
今回の場合は 、 ですね。進研_ベネッセ_名前抽出() といったものに変えてお試しください。
(β) 2016/09/17(土) 13:46
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.