マクロFormulaで変数を使うと定義のエラーが出る
- 価格表を元に、型番から価格を検索するマクロを作りたいが、変数を使うと定義のエラーが出る。
- i = kakakuretu - katabanretuとしてFormulaR1C1に代入すると、iが定義エラーになる。
- 初心者で記録マクロをいじるくらいしかできないため、変数の定義などがよくわからない。
- ベストアンサー
マクロFormulaで入力する式に変数を使うと定義のエラーと出る
価格表を元に、型番から価格を検索するマクロを作りたいのですが、 i = kakakuretu - katabanretu Selection.FormulaR1C1 = "=IF(ISNA(VLOOKUP(RC[i],'C:\Documents and Settings\@\My Documents\東京購入分\[東京購入分.xls]sheet1'!C2:C5,4,FALSE)),"""",VLOOKUP(RC[i],'C:\Documents and Settings\@\My Documents\東京購入分\[東京購入分.xls]sheet1'!C2:C5,4,FALSE))" とすると、iが定義エラーになってしまいます。 初心者でネットを見ながら記録マクロをいじるくらいしか出来ないので 定義などよくわかりません。教えて下さい。
- オフィス系ソフト
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
"=IF(ISNA(VLOOKUP(RC[" & i & "],'C:\Documents and Settings\@\My Documents\東京購入分\[東京購入分.xls]sheet1'!C2:C5,4,FALSE)),"""",VLOOKUP(RC[" & i & "],'C:\Documents and Settings\@\My Documents\東京購入分\[東京購入分.xls]sheet1'!C2:C5,4,FALSE))" あと、R1C1形式で指定しているのに「C2:C5」の範囲指定は有効なのでしょうか?
関連するQ&A
- VBAで統合ができない・・・。
エクセルのマクロの記録で作ったコードですが、実行すると「開けません」と出ます。 どこがいけないのでしょうか? Sub Macro2() Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\abcd\My Documents\2011\新規[対象2010.12.xls]店別集計'!R3C4:R69C10" _ , _ "'C:\Documents and Settings\abcd\My Documents\2011\新規\[対象2011.01.xls]店別集計'!R3C4:R69C10" _ ), Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:= _ False End Sub
- ベストアンサー
- オフィス系ソフト
- 入力された名前やIDを変数に代入させて簡単に入力
例えば セルB2に織田信長、セルB3に1022 セルB5に ='C:\Documents and Settings\Owner\デスクトップ\[1022織田信長.xls]Sheet1'!$C$5 セルB6に ='C:\Documents and Settings\Owner\デスクトップ\[1022織田信長.xls]Sheet1'!$C$6 セルB8に ='C:\Documents and Settings\Owner\デスクトップ\[1022織田信長.xls]Sheet1'!$C$8 というような式が入っているんですが、新たに番号1023の徳川家康さんを登録した時に 最下行でもいいんですが、セルC2に徳川家康、セルC3に1023が入力され セルC5に ='C:\Documents and Settings\Owner\デスクトップ\[1023徳川家康.xls]Sheet1'!$C$5 セルC6に ='C:\Documents and Settings\Owner\デスクトップ\[1023徳川家康.xls]Sheet1'!$C$6 セルC8に ='C:\Documents and Settings\Owner\デスクトップ\[1023徳川家康.xls]Sheet1'!$C$8 というような形で簡単に書き換えてくれるようなVBAの式はつくれますか?とにかく新しく新入生が入ったときに簡単に入力が出来るようにしたいです。 いい方法がありましたらお教え下さい。よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- リンクのVBAを教えてください。
いつも、御指導ありがとうございます。 売掛金元帳のセル(J3)に数式1で、[得意先登録.xls]得意先登録から社名を表示させています。 ●数式1 '=IF($C$2="","",IF(ISERROR(VLOOKUP($C$2,'C:\Documents and Settings\aaa\My Documents\販売管理 \登録 (台帳)\[得意先登録.xls]得意先登録'!$D$7:$E$65536,2,FALSE)),"未登録です", VLOOKUP($C$2,'C:\Documents and Settings\aaa\My Documents\販売管理 \登録 (台帳)\[得意先登録.xls]得意先登録'!$D$7:$E$65536,2,FALSE))) 売掛金元帳のセル(E2)に数式2で、[自社情報登録.xls]自社情報'!$C$3から自社名を表示させています。 ●数式2 '='C:\Documents and Settings\aaa\My Documents\販売管理\登録 (台帳)\[自社情報登録.xls]自社情報'!$C$3 ●数式1及び数式2をVBAで記述したいのですがど、うしても記述出来ません。 ●まるなげになってしまいますが、数式1及び数式2と、社名変更があった場合は売掛金元帳へ反映させるVBAを教えてください。 宜しく御願いいたします。
- 締切済み
- オフィス系ソフト
- Excel 相対パス
Excelでvlookup関数を使っていますが 参照範囲が別ファイルです。 参照先が絶対パスになってしまいますが これでは他人にこのファイルを提供した場合つかえません。 そこで相対パスにしたいのですができません。 どうしたら良いのでしょうか? =VLOOKUP(C2,'C:\Documents and Settings\user1\管理\[20130000.xls]Sheet1'!$D$6:$E$634,2,FALSE) これを =VLOOKUP(C2,'./[20130000.xls]Sheet1'!$D$6:$E$634,2,FALSE) にしたい。
- ベストアンサー
- Excel(エクセル)
- 統合マクロでパスの取得方法
お世話になります。 集計ファイルでエリア・商品で集計をとっています。 一つのファイルにまとめたいのでエリアをシート名による串刺し 商品を統合を使って集計していますが 毎回統合ボタンを押すのが大変で マクロを使い下記のコードを使っていますがファイルのパスで固定されているので 人に渡すとファイル名の変更、ユーザーの違いによりエラーになってしまいます。 現在開いているファイルの名前とパスをマクロに取り込み統合させる事は可能でしょうか Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2009/9/29 ユーザー名 : user ' ' Sheets("一般A").Select Range("b6").Select Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]□□一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]△△一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]××一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]●●一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]■■一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]▲▲一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]++一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]※※一般A'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]%%一般A'!R6C2:R64C9"), _ Function:=xlSum, TopRow:=False, LeftColumn:=False, CreateLinks:=False Sheets("一般B").Select Range("b6").Select Selection.Consolidate Sources:=Array( _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]〇〇一般B'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]□□一般B'!R6C2:R64C9", _ "'C:\Documents and Settings\user\デスクトップ\[8期資料.xls]△△一般B'!R6C2:R64C9", _ ・ ・ ・ ・ End Sub DIMとかActiveWorkbook.Pathとか組み込みましたが うまく行かないです。 どうぞ助けてください。
- ベストアンサー
- Visual Basic
- ファイルの保存先を任意にしたい(マクロ)
エクセルのマクロです。 マクロを実行した時に、保存先とファイル名は任意に入力して(その部分だけは、マクロ実行者が入力して)、その後もマクロを実行させたいのですがどうすれば良いのでしょうか? たとえば、 ActiveCell.FormulaR1C1 = "1" Range("B1").Select ChDir "C:\Documents and Settings\a\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A2").Select ActiveCell.FormulaR1C1 = "2" Range("B2").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book2.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A3").Select ActiveCell.FormulaR1C1 = "3" Range("B3").Select ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\a\デスクトップ\ Book3.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False Range("A4").Select ActiveCell.FormulaR1C1 = "4" Range("B4").Select 上記の場合は、保存先もファイル名もこちらが指定していますが、その部分だけは、マクロの実行者に任意指定及び入力させたいのです。 マクロ初心者なので、よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- コマンドボタンでマクロを起動するとエラーになる
以下のようなコードをツールバーのマクロから起動するようにするとできるのですがコマンドボタンから起動するようにするとエラーになります。なぜでしょうか? Private Sub CommandButton1_Click() Application.ScreenUpdating = False Workbooks.Open "C:\My Documents\b.xls" Windows("b.xls").Activate Columns("A:C").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Workbooks("a.xls").Sheets("Sheet2").Range"A1:A3"), CopyToRange:=Columns("E:G"), Unique:=True ~ここでエラー'1004'~ Windows("a.xls").Activate Workbooks("C:\My Documents\b.xls").Close Application.ScreenUpdating = True End Sub
- ベストアンサー
- オフィス系ソフト
- VBA フォルダ内にファイルが存在するか確認したい
OS: WindowsXP Office: 2003 ExcelVBAについて教えてください。 VBAで特定のフォルダー内でファイルが存在するかの確認をしたいのです。 例えば、以下のようなフォルダーに営業日がファイル名に付いた複数のファイルがあります。 C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120201.xls C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120202.xls C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120203.xls C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120206.xls C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120207.xls C:\Documents and Settings\aaa\デスクトップ\作業\報告書20120208.xls 処理は20120201(2012年2月1日)から順番に行うのですが、その際、 報告書20120203.xlsはファイルが存在しているので変数1を返す。 報告書20120204.xlsは休日のためファイルが存在しないので変数0を返す。 次の処理で変数1の場合は処理をし、変数0の場合は処理を飛ばすと言った内容のマクロを考えています。 要はフォルダー内にファイルが存在するかしないかの部分のマクロ記述を知りたいのです。 どなたか、よろしくお願いします。
- ベストアンサー
- Windows XP
- VBマクロで教えて下さい。
下記VBマクロで上書きしない時はマクロを終了させたいのですがこ指導をお願いします。 Sub Macro2() ' Macro2 Macro ' マクロ記録日 : 2012/9/3 ユーザー名 : HA社 ChDir "C:\Documents and Settings\6464552\デスクトップ" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\6464552\デスクトップ\直送先部品出庫伝票.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False Range("D42:E49").Select Selection.ClearContents Range("I32:J32").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\6464552\デスクトップ\PPSC部品出庫伝票.xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False Application.Quit End Sub
- ベストアンサー
- Visual Basic
- ExcelVBAでファイルの名前をつけて保存
こんばんは! Workbooks.Add ChDir "C:\Documents and Settings\test\My Documents\住所録" ActiveWorkbook.SaveAs Filename:= _ "C:\Documents and Settings\test\My Documents\住所録\友達.xls", FileFormat _ :=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _ False, CreateBackup:=False ActiveWindow.Close として現在開いているファイルから、新規ファイルを作成してデータを写しこみたいと考えているのですが、この書き方だと自分のパソコンでしか出来ないので困っています。 ThisWorkbook.Pathを使うんだろうと思うのですが、どの様に使えばよいのか判らず困っています。 現在開いているファイルと同じフォルダの中に住所録というフォルダを更に作成し、その住所録フォルダの中に新しいファイルを作りたいのですが。。 ご伝授願います。
- ベストアンサー
- オフィス系ソフト
お礼
出来ました!!感激です。ありがとうございました。 >あと、R1C1形式で指定しているのに「C2:C5」の範囲指定は有効なのでしょうか? 私も??なのですが、記録マクロで作ったらこんな風になっていました。でも実行できました!本当に助かりました!