エクセルマクロでファイル名を変数指定したい!
- エクセルマクロを使って起動しているファイル名を変数で指定して参照したい場合、うまくいかないことがあります。この質問では、問題点を教えていただきたいという内容です。
- マクロ構文の一部が不適切なため、エクセルファイルの参照が正しく行われなかったり、セルのコピーができなかったりする可能性があります。
- 具体的な問題箇所としては、Workbooks関数でファイル名を指定する部分やWorksheets関数でシート名を指定する部分、Cells関数でセルを検索する部分などがあります。
- ベストアンサー
エクセル マクロ ファイル名を変数指定したいのですが?
マクロ超初心者です。 何方かご存知の方教えてください。 起動しているエクセルのファイルを変数で定義して参照したいのですがうまくいきません。下記は何処が悪いのでしょうか? 因みにB N Namaeは変数指定してます。 Worksheeetsは参照します。最後はセルコピーの構文です。 マクロ構文 Workbooks("月報 & B.xls").Activate Worksheets(N & "月").Select Cells.Find(What:=Namae, LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0).Resize(RowSize:=405, ColumnSize:=4).Select Selection.Copy
- footaddict
- お礼率42% (6/14)
- オフィス系ソフト
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Workbooks("月報 & B.xls").Activate ↓ Workbooks("月報" & B & ".xls").Activate にしてみて下さい。
関連するQ&A
- Excelマクロ シート名を変数で選択
Excelマクロの初心者です。 シート名が「1月」・・・「12月」のある(変数定義された)部分を コピー貼付けしたいのですが、 Worksheet(N & "月").Select の行でコンパイルエラーになります。 何がいけないのでしょうか、ご存知の方教えてください。 Sub Dim Namae As String Dim N As Integer For N = 1 To 12 Worksheet(N & "月").Select Cells.Find(What:=Namae, LookIn:=xlValues, LookAt:=xlWhole).Offset(1, 0).Resize(RowSize:=405, ColumnSize:=4).Select Selection.Copy Windows("別ファイル").Activate Sheets("XXX").Cells(3, 1 + N * 5).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next End Sub
- ベストアンサー
- オフィス系ソフト
- EXCEL マクロでの検索をお教えください
下記のようなマクロを使いたいのですがこの場合×があるときは良いのですが、 無いときエラーが出ます。どの様にすれば良いのかお教えください。 無いときエラーは オブジェクト変数または With ブロック変数が設定されていません。 となります。 Sub 検索() Range("K12:K70").Select Cells.Find(What:="×", After:=ActiveCell, LookIn:= _ xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate End Sub
- ベストアンサー
- Excel(エクセル)
- EXCEL マクロの指定の仕方
マクロで線の色を指定したいのですが、上手くいかず困っています .ForeColor.RGB = Worksheets("sheet1").Range("F2").Interior.ColorIndex 赤色を指定したいのですがBにどういうコードを入れれば良いですか? FはVlookupで列Bより色を指定するようにしています。 マクロは始めたばかりで良く分からないので、他に必要な情報もわかりません 必要な情報なども併せて教えてください。 よろしくお願いします。 Dim rngStart As Range Dim rngEnd As Range Dim BX As Single, BY As Single, EX As Single, EY As Single Set rngStart = Worksheets("sheet2").Cells.Find(What:=Worksheets("sheet1").Range("D2"), LookIn:=xlValues, LookAt:=xlWhole) Set rngEnd = Worksheets("sheet2").Cells.Find(What:=Worksheets("sheet1").Range("E2"), LookIn:=xlValues, LookAt:=xlWhole) BX = rngStart.Left BY = rngStart.Top EX = rngEnd.Left + rngEnd.Width EY = rngEnd.Top With Worksheets("sheet2").Shapes.AddLine(BX, BY + 10, EX, EY + 10).line .ForeColor.RGB = Worksheets("sheet1").Range("F2").Interior.ColorIndex .Weight = 3 .EndArrowheadStyle = msoArrowheadTriangle End With
- ベストアンサー
- Excel(エクセル)
- エクセルのVBAで悩んでいます。
いつもありがとうございます。 エクセルのVBAで悩んでいます。 セルの範囲指定をVBAで行いたいのです。 ただし、引数に数値変数を使用する為、Cellsプロパティを使います。 すると、離れている範囲の範囲指定が出来ないのです。 例えば、Rangeプロパティだと、 Range("A5:E5,A9:E32").Select こうなるところを、 A9:E32 を変数に置き換えたくて、 Range("A5:E5", Cells(g, 1), Cells(h, 5)).Select と、するとエラーが出ます。 VBAの前文は次の通りです。 Private Sub CommandButton1_Click() a = Me.TextBox1.Value b = Me.TextBox2.Value Set c = Range("a:a").Find(what:=a, LookIn:=xlValues, lookat:=xlWhole) Set d = Range("a:a").Find(what:=b, LookIn:=xlValues, lookat:=xlWhole) 'MsgBox c + d e = c.Address 'MsgBox e f = d.Address 'MsgBox f g = Range(e).Row MsgBox g h = Range(f).Row MsgBox h Range(Cells(g, 1), Cells(h, 5)).Select End sub よろしくお願い致します。
- 締切済み
- Windows XP
- エクセルで検索と貼り付けのマクロを組みたい
エクセルで次のようなマクロを組みたいのですがうまくいきません。 ・C5からBB6の範囲において、Aという文字が入っているセルを検索し、その4行下1列右にコピーしておいたものを値だけ貼り付ける。 検索範囲を指定したいのは同じシート内に他にもAという文字が入っているセルがあるからです。このマクロを実行すると何故かC5からBB6の範囲以外のセルを選択し、貼り付けてしまいます。どこがいけないのでしょうか。ぜひ、教えてください。お願いします。 Range("C5:BB6").Select Cells.Find(What:="A", After:=ActiveCell, LookIn:=xlValues,LookAt:= _ xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _False, MatchByte:=False, SearchFormat:=False).select Selection.Offset(4, 1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=False
- 締切済み
- オフィス系ソフト
- セル範囲を変数に格納したい
セル範囲を変数に格納したいのですがどのようなコードになりますか ? (配列に値を読み込むのでは無く、単純にセル範囲を変数としたい) TargetRange = Range("A2:Z2") Set rngFind=TagetRange.Find(What:="A",LookIn:=xlValues,LookAt:=xlPart, ----- )のように使用したい。
- ベストアンサー
- Excel(エクセル)
- マクロについて質問です。
A B C 1 3 りんご 2 赤 3 くだもの 4 6 みかん 5 オレンジ 6 くだもの 7 9 ぶどう 8 紫 9 くだもの というデータがシート1にあったとして、シート2のa2セルに6と入力すると以下のようにa5セル以降に抽出し、6という入力を消すと抽出したものも消えるようなマクロ 6 みかん オレンジ くだもの 上のような質問で下のマクロを教えていただけたのですが、もし、みかんのb列も3だった場合いしたのようにみかんの行まで抽出できるようにするには下の構文をどうかえたらよいでしょうか。下手くそな質問ですがよろしくお願いします。 3 りんご 赤 くだもの みかん オレンジ くだもの 現在、わかっている構文↓ Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim c As Range, wS As Worksheet Set wS = Worksheets("Sheet1") With Target If .Address = "$A$2" Then If .Value <> "" Then Set c = wS.Range("B:B").Find(what:=.Value, LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing Then c.Offset(, 1).Resize(3).Copy Range("A5") Else MsgBox "該当データなし" End If Else Range("A5").Resize(3).ClearContents End If End If End With End Sub 'この行まで
- ベストアンサー
- Excel(エクセル)
- マクロがエラーになります。原因は?
先日zap35さんにB1:O1に掲げる文字とそのセルの色と同じ ものをB4:AD27の範囲内で見つけてそのセルと、左のセルを 色づけする、というマクロを教わりました。(というより すべて教えてもらいました) コードは完璧で動いているのですが、私のほうでゴチャゴチャ いじっているうちに、B4:AD27の範囲の文字を関数により表示 するように変更しました。たぶんこのことが原因だと思うので すが、色がつかなくなりました。関数をはずして、文字として 打ち込むと、動作します。コードの一部を変更したりして関数でも 動作するようになるでしょうか? Sub Macro1() Dim r, trg As Range For Each r In Range("B4:AD27") If r.Value <> "" Then Set trg = Range("B1:O1").Find(what:=r.Value, LookIn:=xlValues, lookat:=xlWhole) If Not trg Is Nothing Then r.Offset(0, -1).Resize(1, 2).Interior.ColorIndex = trg.Interior.ColorIndex ' r.Offset(0, -1).Resize(1, 2).Font.ColorIndex = trg.Font.ColorIndex End If End If Next r End Sub
- ベストアンサー
- オフィス系ソフト
- Excelマクロで・・・
任意の変数nを参照し、範囲A1:(A1+n)の最大値を 計算するマクロを作りたいと考えています。 とりあえず Formula="max(Cells(1,1),Cells(1,n))"と書いてみた のですが、(当然なのでしょうが)ダメでした。 良く分からないですがFormulaを使う時はA1とかB15 しか入力出来ないようです。何か良い方法をご存知 でしたらどうかよろしくお願い致します。
- ベストアンサー
- Visual Basic
- エクセル マクロ REPLACEMENT
エクセル2010を使っています。 置換をマクロでやろうと次のような文を見つけました。 Sub データ_ボタン2_Click() Range("g2:g1000").Select With Selection .Replace What:=注 , Replacement:="", LookAt:=xlWhole End With End Sub ボタン押下後、セレクトまではやっているのですが置換してくれません、どこがいけないのでしょうか? また正しくはどうしたら良いでしょうか? やりたいのは、G列の 注半角スペースの二文字を削除したいと思っています。 くわしい方、よろしくお願いします。
- 締切済み
- Excel(エクセル)
お礼
回答ありがとうございました。 解決できました。