• 締切済み

セルの文字をマクロの一文に反映させる方法

マクロ初心者になりますが、よろしくお願いします。 今、一つのエクセルで、顧客を管理していて、別のシートで 各顧客のカルテを作成しているのですが、 顧客管理しているエクセルで、検索をして、カルテ番号を出せるようにしてます。 同じシートでカルテ番号を入力すると、別のエクセル(カルテ) が開くようにしたいのですが、どのようにすればよいでしょうか? 私なりにマクロボタンを設定して開くまではきているのですが、 セルの文字を反映してできるようにしたいです。 利用しているマクロ Sub Auto_Open Workbooks.Open ThisWorkbook.Path & "\ファイル名.xlsx" End Sub このマクロのファイル名を Sub Auto_Open Workbooks.Open ThisWorkbook.Path & "\●●●.xlsx" End Sub ●●●のところをセルで記入した文字に変えることはできませんか? そうすると、カルテ番号を記入後、開くようにしたいです。 入力は、半角の数字で入力予定です。 利用しているソフトはオフィス2007です。

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

> セルの文字を反映してできるようにしたいです。 ここでいう「セル」がSheet1のセルA1として。 Workbooks.Open ThisWorkbook.Path & "\" & WorkSheets("Sheet1").Range("A1").value & ".xlsx" のはず。

関連するQ&A

  • エクセルVBAでパスの¥マークについて

    このマクロを記述したBOOKと同じフォルダー内にある、シート001.xls を開くマクロです。 同一フォルダーにあるのですから、このような記述になると思います。 Sub kakunin1() Workbooks.Open (ThisWorkbook.Path & "\" & "シート001.xls") End Sub しかし、以下の3つはすべてシート001.xls を開くことができました。 Sub kakunin2() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "シート001.xls") End Sub Sub kakunin3() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "シート001.xls") End Sub Sub kakunin4() Workbooks.Open (ThisWorkbook.Path & "\" & "\" & "\" & "\" & "\" & "\" & "シート001.xls") End Sub パスの¥マークは階層をあらわすのだと思っていましたがいくつ重ねてもなぜ開くのでしょうか?非常に初歩的な質問だと思いますが、ご教示いただければ幸いです。

  • EXCELマクロを無効にして開く方法

    掲題の通りなのですが、EXCEL2007で作成されたマクロ有効ファイル(XLSM形式)を マクロ無効の状態で開く方法が分からず困っております。 マクロの内容は Workbook_Open 処理で、特定セルに入力されている EXCELファイルを開き、自身は閉じるというものです。 Private Sub Workbook_Open() Dim FileName As String '1ファイル目 Range("A2").Select FileName = ActiveCell.FormulaR1C1 Workbooks.Open FileName:=FileName ThisWorkbook.Activate '2ファイル目 Range("A3").Select FileName = ActiveCell.FormulaR1C1 Workbooks.Open FileName:=FileName ThisWorkbook.Activate ・・・・・・繰り返し DoEvents ThisWorkbook.Close End Sub 上記の特定セルに設定してあるファイルパスを変更するためには マクロを無効にして開かなければなりません。 マクロのセキュリティを変更して、「すべてのマクロを無効にする」を設定して 該当のファイルを開けば良い事は分かっているのですが、他に分かりやすい方法で マクロ無効状態で開く方法があれば、ご教授頂ければと思います。

  • excelマクロボタンのリンク先の表示方法

    よろしくお願いします。 excel2010にてマクロボタンを設定し、特定のsheetに飛ぶよう設定しました。 ●そのボタンにマウスポインタを持って行った際にリンク先が表示されるように  することは可能でしょうか? ●このボタンをクリックしたらどこへ飛ぶか、というのがわかるようにしたいの  ですが、良い方法がありましたら教えてください。 お願いいたします。 Sub マクロ名() Workbooks.Open ThisWorkbook.Path & "\ファイル名.xls" Worksheets("シート名").Activate End Sub

  • 他ブックのセルの値をリンクさせたい

    Excel2007でマクロ作成中の初心者です。 常に同一フォルダの中のブックA(マクロ記入用)とブックB(データ計算用)を開いて、作業しています。 ちなみにこのフォルダはデスクトップ上にあります。 まず、ブックAを開き、出てきたフォームの中のコマンドボタンを押して、 ブックBを開き、セル("D2")に、ブックAのセル("A1")の値がリンクされているようにしたいです。 どのようにしたらリンクできるでしょうか。 Private Sub CommandButton89_Click() ブックBを開く Sheets("管理").Select  Range("D2").select End Sub ------------------------------------- Sub ブックBを開く() ChDrive ThisWorkbook.Path ChDir ThisWorkbook.Path On Error GoTo err: Workbooks("25年計算.xlsm").Activate Exit Sub err: Workbooks.Open Filename:=ThisWorkbook.Path & "\25年\25年計算.xlsm" End Sub

  • マクロ ファイルを開いたときにいつも同じセルを選択

    Sub auto_open() Worksheets("今週の点数").Activate Range("g3").Select End Sub というように、動作させたいエクセルファイルを開いてから、「開発」-visual basic-と進み、ThisWorkbookをダブりクリックして開いた画面に上のように記述したのですが、最後に上書き保存をしたセルが出てくるだけで、うまくいきません。何が間違っているのでしょうか。

  • 【VBA】マクロについて質問です。

    マクロ超初心者です。 取引先との面談の記録を残しているファイルがあり、その中の何個かの特定のセルを別のファイルに積み上げる形式でコピーしたいです。(全シート分)(シートの数はファイルによって違います) コピーしたい特定のセルをA1~A5までに貼り付けて、 次のシートはB1~B5と、項目ごとに下へ下へと貼り付けるようにしたいです。 取引先のファイルには複数シートがあり、フォーマット自体はすべて同じです。 現在以下マクロを組んでいます。 Sub 移行実験 Dim oldWB As Workbook, newWB As Workbook Dim I As Integer, s As string, xFile As String With Application.FileDialog(msoFileDialogOpen) .Title = "変換ファイル選択" If . Show = True Then xFile = .SelectedItems(1) Else Exit Sub End If End With Set oldWB = Workbooks. Open(xFile) Set newWB = Workbooks. Open(ThisWorkbook. Path & "¥新.xlsx 'ここに複数シートの内容を別ブック(新.xlsx)のひとつのシートにまとめるマクロを入れたいです。' newWB. SaveAs Filename:=ThisWorkbook.Path & "\" & _ oldWB.Worksheets(1) . Range("A1") . Value, FileFormat:=xlWorkbookNormal oldWB. Close False: newWB. Close False End Sub もっとこうした方がいいと思う所や、修正する箇所もあれば教えていただけると幸いです。 マクロ初心者のため、分かりやすく教えていだだけると有難いです。 どうぞよろしくお願いいたします。

  • ファイルを開くマクロで質問です

    ファイルを開くマクロで質問です。 セルC20にファイルのパスが入力されています。 例:V:\Book1.xlsx セルI9~I18 M9~M18でダブルクリックしたときに C20セルにあるパスをひらくにはどうしたらよいでしょうか? 現在はどのセルでダブルクリックをしてもC20のパスが開いてしまいます。 またC20のパスがすでに開いている時、エラーなどにならずに そのエクセルシートを開く方法はありますでしょうか? 読み取り専用や、一度保存して閉じるとかではなく そのまま開いているシートにとびたいです。 もしこれが無理であれば保存してとじて再度開き直す方法でも大丈夫です。 さらにこれはもし分かればでいいのですが、その開いたエクセルシートの 【計測データ読み込み】という名前のシートのD列の一番下のデータを ダブルクリックしたセルに貼り付ける方法も分かれば教えて下さい。 とりあえず、現状のマクロをはりつけて置きます。現状はシートを開くところまでしか 作れていません。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean) Cancel = True Dim i As Integer Dim filepath As String filepath = Range("C20").Value '☆ If Dir(filepath) = "" Then MsgBox filepath & vbCrLf & "はファイルが見つかりません。" '★ Exit Sub End If For i = 1 To Workbooks.Count If filepath = Workbooks(i).FullName Then MsgBox filepath & vbCrLf & "は既に開いています。" '★ Exit Sub End If Next i Workbooks.Open Filename:=Range("C20").Value End Sub 

  • エクセルのマクロについて

    お世話になります。エクセル2007のマクロについてですが、「A」というBOOKがありその中の任意のセルをクリックするとハイパーリンクで「B」というBOOKが開くようになっています。 ここで「B」が開いた時点で自動的に「A」を保存しないで終了させたいのですが、マクロの組み方がわかりません。 Sub Sample1() Workbooks("BookA.xlsx").Close End Sub と記述するとBook Aが閉じるのは調べてわかったのですが、ハイパーリンクでBが開いた時点でこのマクロを動かすようにするにはどうしたらいいのでしょうか?何か別の方法があるのでしょうか? 宜しくお願いします。

  • excelのファイルとセル値を書き出したい

    excel2003を利用しています。 とあるフォルダにある excelファイル名(自分自身のファイルを除く) を全て書き出して、 且つ A1セルの値をB列に書き出すことを、やろうとvbaを作ってみましたが。 最後のファイルのA1セルを書きだすところで、エラーになっていまい そこだけ空白になってしまいます。※写真参照 記述は以下の通りです。どのように修正すればよいか 教えていただけないでしょうか? また他にもっと優れた記述があれば、そちらも教えて欲しいです。 よろしくお願いします。 Sub test() Dim buf As String, cnt As Long Dim Path As String Path = ThisWorkbook.Path & "\" buf = Dir(Path & "*.xls") cnt = 2 Do While buf <> "" If buf <> ThisWorkbook.Name Then cnt = cnt + 1 Cells(cnt, 1) = buf buf = Dir() Workbooks.Open Filename:=Path & "\" & buf MsgBox Workbooks(buf).Worksheets(1).Range("A1").Value Cells(cnt, 2) = Workbooks(buf).Worksheets(1).Range("A1").Value Workbooks(buf).Close End If Loop End Sub

  • Excelのマクロで、セル内の文字をファイル名にしたい

    ”プロト.xls”というExcelファイルの中に、以下の動作をするマクロを作成したいのです。 (1)”C:\顧客\顧客納期連絡.xls”というExcelファイルを開き、  それを”C:\顧客\A.csv”という名前のcsvファイルにする。 (2)”C:\顧客\A.csv”を”xxxxxxxxxxxxxxxxxx”(※注1)という名前にしてコピーする。 ※注1:”xxxxxxxxxxxxxxxxxx”の部分は、”プロト.xls”ファイルのSheet”マスター”のセルD9から取得させる。 そのセルは、 C:\顧客\ABCDEF0215.csv と記述しています。 (3)コピー後、”C:\顧客\A.csv”を削除する。 ------------------------------------------------------------------- Sub 顧客納期連絡() ' ' 顧客納期連絡 Macro ' マクロ記録日 : 2010/2/15 ユーザー名 : xxxxxxx ' ' ChDir "C:\顧客" Workbooks.Open Filename:="C:\顧客\顧客納期連絡.xls" ActiveWorkbook.SaveAs Filename:="C:\顧客\A.csv", FileFormat:=xlCSV, _ CreateBackup:=False ActiveWorkbook.Save ActiveWindow.Close ActiveWorkbook.Save Dim fname1 As String Dim fname2 As String fname1 = "C:\顧客\A.csv" fname2 = Workbooks("プロト.xls"), Sheets("マスター"), Cells("D9") FileCopy fname1, fname2 Kill "C:\顧客\A.csv" End Sub ------------------------------------------------------------------- 上記のマクロを作成したのですが、FileCopyの行で、構文エラーか型に一致していない、 というエラーになりマクロ再生が停止します。 セルの内容をファイル名にしたいのですが、何か良い方法はございませんでしょうか? 私は超初心者なので、何卒宜しくお願い致します。

専門家に質問してみよう