• ベストアンサー

マクロに関して。

マクロに関して。 マクロは初心者です。毎日顧客データをCSVでダウンロードし、それを運送会社のラベル出しをするために、同じ手順で加工しています。(性と名前、住所などをひとつのセルにするとか) ファイルを開いた時でも、そのマクロが有効になっているように設定するにはどうすればよいのでしょうか? 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.1

マクロを作成するとき、作成先を「作業中のブック」、「新しいブック」、「個人用マクロブック」の中から選択します。 Excel2003では、個人用マクロブックはつぎの場所に作られます。他のバージョンでも似たようなところに作られますので探すことはできると思います。 C:\Documents and Settings\[ユーザー名]\Application Data\Microsoft\Excel\XLSTART フォルダの中のPersoanl.xlsというファイル 個人用マクロブックに作成されたマクロは[ユーザー名]のユーザーがエクセルを立ち上げると使用できるようになります。 「作業中のブック」、「新しいブック」に作成されたマクロは、そのファイルを開かないと使用できません。 エクセルの「ツール」→「オプション」→「セキュリティタブ」→「マクロセキュリティボタン」...と選択・クリックしていくとセキュリティレベルを設定するウインドウが開きます。 ここで、セキュリティレベル「中」をチェックしておくことが推奨されます。 「中」にしておくと、マクロを含んだファイル(ブック)を開くとき、マクロを有効にするか無効にするか聞いてきます。 ファイルを開いたとき、作成したマクロが有効になっていないということは、セキュリティレベルが「高」以上に設定されているか、マクロが「個人用マクロブック」ではなく、「作業中のブック」に作成され、顧客データを加工するために新規作成でエクセルを開き、マクロを記録したブックが開かれていないためではないかと思います。 作成したマクロの存在を確かめるためには、エクセルメニューバーの「ツール」→「マクロ」→「マクロ」と進みますと、マクロウインドウが開き、実行可能のマクロのリストを見ることができます。そのウインドウの下の方にある「マクロの保存先」を「開いているすべてのブック」にします。 そこに、ご自分で作成したマクロがありましたら、リストの中から選択して、右上にある「実行」ボタンを押せば実行されるのですが、実行を拒否されたときは、前に述べたマクロのセキュリティレベルを「中」にして、エクセルを再起動してください。 日常的にマクロを実行するのにいちいちリストの中からマクロを選択していては面倒なので、ツールバーにマクロボタンを作って、作成したマクロを登録しておく方法もあります。 お聞きになっていることは、こんなことなのでしょうか?それともマクロの作り方についてでしょうか?もし後者なら、顧客データ(CSV)のフォーマット(データの数、並び順、カンマ区切りまたはスペース区切り、データの数はいつも同じか?それとも日によって変わるか?)について、お聞かせ下さい。

halihali55
質問者

お礼

m_and_dmp 様 回答、どうも有難うございます。 うまくできました!! マクロを使いこなせたら、日々の業務もすごく楽になるんでしょうね。 CSVのフォーマットは日々同じですので、これで対応できます。 本当に助かりました。 感謝です。

関連するQ&A

  • エクセルのマクロの操作を記録するについて教えて下さい。

    エクセルのマクロの操作を記録するについて教えて下さい。 マクロ・VBAを勉強しはじめた超初心者です。 毎日、CSVの新しいデータを取得します。 その中で、列の並び変えや文字の太さ、ここは¥マークをつけたい など編集したい事があるのですが、 それを毎日していると時間がかかってしまうので自動化したいので マクロというものを知りました。 実際に、新しいCSVファイルを開いて、 マクロの記憶→上記の編集操作→マクロ記憶終了→保存 とすると、行った動作ではなく、 今現に表示されているCSVの文字データも記憶されてしまいますよね?? 行った動作(列の並び変えや書式変更、関数入力)という行動”だけ”を 自動化するにはどうしたら良いのでしょうか? 毎日取得するCSVデータは 列の項目は一緒ですが、その中で数字や住所が違うデータです。 分かりにくい文章で申し訳ありませんが よろしくお願い致します。

  • 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の行で、構文エラーか型に一致していない、 というエラーになりマクロ再生が停止します。 セルの内容をファイル名にしたいのですが、何か良い方法はございませんでしょうか? 私は超初心者なので、何卒宜しくお願い致します。

  • マクロで「別シートを検索・元シートへ転記」したいのですが・・・

    昨夜から20時間くらい悩んでおります・・・。どなたかよろしくお願いします。 (概要) エクセルで 「オーダー受付」と「顧客データ」の2つのシートがあります。 ●「オーダー受付」のセルには、K3電話番号 K4お名前 K5住所1 K6住所2 と縦に表示用セルを設けています。 ●「顧客データ」のセルには、A1 A2 A3 A4 と横に上記データを記録してあり、すでに1万行を超えています。 (やりたい事) ●お客様から電話があったときに「オーダー受付」シートの K3に電話番号をいれマクロを実行すると、「顧客データ」から残りの項目である 名前・住所1・住所2 が転記されるようにしたいです。 ●もし新規のお客様で、検索結果なしの場合は引き続きお名前・住所1・住所2 とお尋ねし、後からコピペでデータ一覧へ足しています。この辺の操作は検索・転記が解決してから挑戦しようと思っています。 是非、ご回答ください。

  • 外部データを取り込むマクロ

    マクロ初心者です。 デスクトップ上にCSVファイルを出力し、それをエクセルに取り込んで、 そのデータを見やすく加工するマクロを作りました。 自分のパソコンだとうまく実行できますが、 社内の他の人のパソコンだとできません。 CSVのデータは、共有のオラクルからデータを出力しているので、同じものです。 実行しようとすると、 「実行時エラー1004  外部データ範囲を更新するためのテキスト ファイルが見つかりません  テキスト ファイルが移動または名前が変更されていないことを確認し、  再度実行してください」 と言われ、 デバッグするとVBAで .Refresh BackgroundQuery:=False が黄色くなっています。 どうすればうまくいきますか? 教えてください。よろしくお願いします。

  • EXCELでの検索マクロを作りたいのですが

    マクロの初心者です。氏名の検索マクロを作成したいのですが分かりません。 A列:名前 B列:郵便番号 C列:住所 と 名前等のデータを(ランダムに)入力したシート1を作成し、 シート2にシート1の「A列:名前」から性(たとえば青木)で検索して検索ボタン(マクロボタン)を押して該当データを表示させるようにしたいのですが。

  • EXCEL のマクロを作りたいんですが・・・

    マクロはあまり詳しくありません。マクロの記憶で設定し、多少内容の変更をする程度です。 マスターのBOOKがあり、月ごとにデータを入力し、その都度名前を付けて保存します。 (データの量はまちまちです) Sheet1にデータを入力し、Sheet2には関数が入っております。 使いたいのはSheet2にあるデータなのですが、データが無い欄は関数が入っていますので、そのままではデータとして使うのが面倒です。 CSVで出力するにしても、空の関数の欄が,,,,と出ます。 データが入っているセルだけを範囲指定して、値の貼り付けをし、使用していない空のセルの関数を消すというマクロが出来るでしょうか?

  • シートを串刺しで抽出したいのですがそれはマクロですか?

    こんにちは。 エクセルの串刺し集計ではなく、串刺し抽出のことでわからないので 教えて下さい。 ・同じブック内に顧客20件のデータが管理されています。 ・1シート毎が1顧客の単価帳になっています。 ・A1に顧客の名前(同じくシート名もこれと同じく顧客の  名前をつけています。) ・抽出したいのは顧客20件の各シートのA50:B53です。 同じブックの新規シートに「A1の顧客名」と(どれを抽出したか わからなくなってしまうから必要なのかな?と思います。) 20シート全ての「A50:B53」を抜き出すことは可能でしょうか? 抜き出したいセル番地は20シート一緒です。 それぞれのシートはA2からA49までの抽出しなくてもいいセルは、  不規則にだらだらと製品名や個々の単価が入力されています。 転職した会社でデータ管理がなされていなくてビックリしています。 とは言え私もマクロなどは経験がなく、なにをしたらできるのかが さっぱり分かりません。 でも確か前の会社ではできていたのに・・・? あれはアクセスだったのかなぁ? などという状態です。 VBAマクロの本を読みあさりましたが よくわかりませんでした。 とっかかりを教えていただければありがたいです。 よろしくお願いします。

  • エクセル初心者です。マクロなのか関数なのか

    エクセル初心者です。マクロ or VBAを使えばいいのか関数なのかわからないです・・・・・ デスクトップにある新しいフォルダという名前の中に50以上のエクセルCSVブックがあります。 これをひとつも展開させずに新しいブックにひとつにまとめたいのですが、最低でもフォルダ内には50~100ぐらいのエクセルのCSVブックがあるので(ひとつひつ展開するのも手間なので)ワンクリックか何かでまとめる方法はないでしょうか?(フォルダ内にある名前は全てばらばらです) Book1.CSV A B C 1 1 1 Book2.CSV A B C 2 2 2 Book3.CSV A B C 3 3 3 例えば上のような3つのブックがあって中には一行目はすべて固定で二行目以降から数字が入っています。 最終的には・・・・ 新しいBook A B C 1 1 1 2 2 2 3 3 3 ↑ 一行目は固定で2行目以降から各ブックに入っている行を追加するだけのようにしたいのです。 こういことはマクロでも可能でしょうか?それとも関数のほうがいいのでしょうか? ご存知であればぜひマクロの登録手順とその方法を教えてください。 いろいろと調べたのですがマクロは書いていた記述をそのまま貼り付けてもうまく動作しなかったんです。 マクロであればその手順まで教えていただけると非常に助かります。 エクセルのverは2003です。よろしくお願いいたします。

  • EXCEl マクロ「実行時エラー1004」について教えてください。

    EXCEl マクロ「実行時エラー1004」について教えてください。 他の方の質問も見てみましたが、それぞれの事情で違うようで分かりません。 どなたか教えていただけないでしょうか。 1.EXCELに「住所録データ」「検索結果」「ラベル」の3種シートがあります。 2.「住所録データ」から必要なものを選び、「検索結果」に表示させると、「ラベル」に結果が反映され、プリントアウトされます。 3.「検索結果」までは表示されますが、そこで下記の表示がでます。 「実行時エラー1004アプリケーション定義またはオブジェクト定義のエラーです。」 4.『デバック』を見ると下記のマクロが表示されます。  ' '一覧表のデータをレイアウトにあわせて転送 Sub ラベルへ転記(番号, 印刷位置, 複数段) Dim 用紙 As Object Sheets("検索結果").Select Set 用紙 = Sheets("ラベル") 用紙.Range("ラベル氏名") = Cells(番号 + データ開始, 氏名位置).Value + " 様" 用紙.Range("ラベル住所") = Cells(番号 + データ開始, 住所1位置).Value + " " + Cells(番号 + データ開始, 住所2位置).Value 用紙.Range("ラベル所属") = Cells(番号 + データ開始, 所属1位置).Value + " " + Cells(番号 + データ開始, 所属2位置).Value 用紙.Range("ラベル番号") = Cells(番号 + データ開始, 郵便位置).Value 用紙.Select Range("ラベル").Select Selection.Copy Cells(ラベル開始行 + (印刷位置 - 1) * ラベル行数, _ ラベル開始桁 + ラベル桁数 * (複数段 - 1)).Select ActiveSheet.Paste End Sub 5.上記「 用紙.Range("ラベル住所") = Cells(番号 + データ開始, 住所1位置).Value + " " + Cells(番号 + データ開始, 住所2位置).Value」の部分が黄色の→とラインでチェックされています。 前回このマクロを使用したあと、プリントアウトの位置を調整するため、「ラベル」のシートで、セルの高さや幅を変更したり一部削除したりしました。これが原因かもしれません。もしそうだとしたら今後このマクロは回復しないでしょうか。マクロの知識がなく質問も適切ではないかもしれませんが、どなたかお知恵を貸していただけないでしょうか。

  • マクロを使って

    セルに「山田 太郎」など名前が入ってるとして、これをマクロを使って1000件位のデータを姓と名にわけたいんですけど、こういうことは可能でしょうか?