• ベストアンサー

Excel2003でマクロ操作教えてください。

374649の回答

  • 374649
  • ベストアンサー率38% (203/527)
回答No.2

日付を適当なセルに入れてください、仮にセル"A1"に"=TODAY()"を入れ今日の日付を取得します。 Sub 書込() Dim RowNo As Long Dim ColNo As Long RowNo = ActiveCell.Row ColNo = ActiveCell.Column If ColNo <> 1 Then MsgBox "カーソルの位置が違います !!" Exit Sub End If If Cells(RowNo, "E") <> "" Then MsgBox "記録済みです !!" Exit Sub End If With Cells(RowNo, "F") .NumberFormatLocal = "yyyy/m/d;@" End With Cells(RowNo, "E") = Cells(1, 2) Cells(RowNo, "F") = Cells(1, 1) End Sub この場合"入金"も適当なセルに入れておけばその値を変えるだけで変化するので融通がききます。 "A2"に"入金"と入れておけば Cells(RowNo, "E") = cells(1.2) になります。 マクロを組むときはただ組むだけでなく必ず誤操作をしないようエラーチェックを組み込むことが大事です。

tomo1944
質問者

お礼

丁寧な回答ありがとうございました! 大変勉強になりました!

関連するQ&A

  • マクロお願いします。

    A B C D E F G 日付 担当者 コード 顧客名 他 入金status  上記、入金status欄に、「入金済」という文字があり、それ以外は日付が入っています。この「入金済」と書いてある行を削除するマクロを組みたいと思っているのですが、まだ未熟なのでご助力のほどお願いします。 途中までですが、 sub リスト() dim 行 for 行=1 to 1000 if cells(行、6)="過入金"then ここからがわかりません。 end if next 行 end sub

  • エクセル2007 マクロの勉強

    マクロを勉強しようとしています。 開いたシートで決まったところに本日日付(平成24年3月11日)と曜日を入れたいと思いマクロの記録でやってみましたがこれだといつも3月11日と入るのではないでしょうか? Sub Macro4() '本日日付と曜日を入れたい Range("A7:D7").Select ActiveCell.FormulaR1C1 = "3/11/2012" Range("E7").Select   'ここで曜日を入れたい End Sub よろしくお願いいたします。

  • エクセルマクロのダイヤログボックス(ツールバー)が表示されない

     エクセル2003,2000を共にパソコンにインストールをしてあり、新しいマクロの記録をしたいのですが、以前はマクロ記録開始時に表示されていた記録終了、相対参照記録用のツールバー(四角いボックス)が表示されなくなりました。  相対参照にて記録したいので表示されず困っています。  以前にマクロ記録の失敗を繰り返していて、色々、触りまくったのが原因だと思います。何故このようになったのか良く理解できません。  エクセル2003,2000もともに表示されるはずですが出て来ません。どうすれば表示できるのでしょうか? それと開いているすべてのブックにマクロを適用したいと思い、PERSONAL.XLSで保存していますが、同一の書式構成のシートで日付違いのブックに個人用マクロを実行するとエラーがでます。  この場合、その日付のシート名も記録されているからなんでしょうか?日付の如何に関わらず、マクロを実行し、自動化したいのですが、上手く行きません。  記録手順が悪い?のでしょうか?独学見よう見まねでやっているもので、基本が十分認識できてないままやっています。他のブックからセル範囲を貼り付けたりする内容なので、記録順序が狂っているかもしれません。詳しい方がおられましたらご連絡お願いします。

  •  エクセルマクロでこれを簡単に出来ますか?

     部材関係の仕事に携わっている者ですが、日々変る納品リストの整理が長引き、もっと簡単にしたいと思いますが、次のことをエクセルマクロで瞬時にできるのでしょうか?私はエクセル初心者な者で詳しいことが分かりません。  1.エクセルワークシートが15部の構成のブック  2.その内、自分が必要とするのが5部のシート  3.その各シートには2005.6.○○と日付が付与され   ている  4.その5部のワークシートに記載されている部材うち、自分に関係する物だけをフィルタオプションを使って抽出、抜き出している。  5.フィルタオプションの抽出条件は別ファイルを開き、コピー、貼付けして検索している。  6.各シート検索後、抽出データーを1枚のシートにまとめるために統合機能を使い、1つのリストにしている。  7.日付により、項目が増減、変動するので多くなると1ページに印刷すると、文字が小さくなるので、目一杯縦横の余白を最小にして印刷している。  以上のような流れなのですが、元になるワークシートのシート名に日付が付与されているせいか、マクロを記録してもエラーが出ます。やはり単純なマクロの記録では1~7の操作実行は無理なのでしょうか?  手順はいつもと同じなのですが、シート日付名をそのまま記録してしまうからでしょうか?  現状1~5までの操作を各シート毎に繰り返しているので非常に時間が係ります。VBAじゃないと無理なのでしょうか?個人用マクロに保存しています。アドバイスお願いします。

  • マクロ(Excel)で伝票入力

    はじめてのマクロ挑戦で頓挫しています。 「伝票入力」を作成しマクロの記録で作成しましたがうまく動きません。 以下のマクロをご指導頂けないでしょうか。 ---------------------------------------------------------- セルE6(得意先コード)入力 セルC16(日付)入力 セルD16(品名コード)入力 セルF16({数量}入力 セルI16(適用)入力 以上 セルC16~セルI16を入力後、1行下がりながら (2行目C17~I17、3行目C18~i18・・・・と6回繰り返し)後 セルH25(前回請求額)入力 セルH26(前回入金)入力 以上でまたセルE6で入力待ちになる。 -------------------------------------------------------------- 以上の内容でご理解して頂けるか心配ですがよろしくお願い致します。 (使用バージョン2003)

  • 行コピーして、今日の日付の行に貼り付けるマクロ

    こんにちは、エクセルマクロについて、助けて頂きたく質問させていただきました。 添付しました画像のような表があり、 セルA2に「=TODAY()」が入っていて、セルB2から右は別シートのデータを参照しています。 マクロを実行すると、2行目を行コピーし、セルA3以下の日付からセルA2の日付(今日の日付)を探し出して、行貼り付けしてほしいです。 行コピーや値で貼り付けはマクロの記録を使って、詳しくない私でもなんとか作ることはできるのですが、 今日の日付を探し出して、そこに貼り付ける。というマクロは作れませんでした・・・。 お助け下さい、宜しくお願いします! ※補足します セルA2の今日の日付は便宜上入力しているだけです。無い方がマクロを組みやすいのなら、無くせます。

  • ピボットテーブルのマクロについて

    会社で各営業支店のデータを集計する際、ピボットテーブルを使っています。毎回同じ作業なのでマクロの記録をしてみたのですが上手くできずに困っています。 各列に支店名、日付、商品名、数量のデータがあります。それを表に左に商品名、上に日付、右下に数量、一番上の欄に支店名が来るようにするにはどのように書けばよい教えて頂けませんでしょうか。 よろしくお願いします。

  • 受付一覧表に詳細入力した時の日付を自動補充したい

    不規則に発生する依頼をエクセルの受付一覧(受付日、担当者、内容)に記録する際に担当者を入力したら受付日に当日を自動セットさせたいのです。 ・日付欄に「IF(担当者<>"",TODAY(),)」では1)ファイルを開く度に今日の日付になってしまう。2)担当者が空白のとき1900/1/0になってしまう。 ・一度日付が入ったら変わらないようにしたいと思い IF(日付<>"を前につけると循環参照でエラーになってしまう。 かといって各行に日付セットのマクロボタンを設けるのも大仰だし・・・。 この2点をどうしたら良いでしょうか。 お知恵をお貸しください。

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

    こんばんわ。マクロの超初心者ですが、 最終的に、デフォルトの大きさのセルを、ボタンを押して自動で A1=行高 100 A2=行高 200 A3=行高 300 B1~B3は、結合 で完成となる物を作ろうとしています。(列幅は、考えない物としています) 手順として、マクロの記録をスタートして (1)1行目の行高を100にする (2)2行目の行高を200にする (3)3行目の行高を300にする (4)B1~B3を結合する で記録を終了します。そして再生をするのですが、A1~A3の行高がきちんと設定どおりになってくれません。 一応、行高を確認すると、3つとも、200になっています。どうも、100+200+300の合計の平均の行高に設定されてしまいます。 自分なりに考えて、B1~B3の結合のせいかなと思い、なら、セルの結合をマクロの記録から外してやってみました。 (1)あらかじめ、B1~B3を結合させておく (2)マクロの記録スタート (3)1行目、2行目、3行目をそれぞれ設定する で記録終了して、再生させるのですが、やっぱり同じ結果になってしまいます。 これは、エクセルの仕様なのでしょうか?それともなにか対処方があるのでしょうか? 一応、マクロの編集も少しは、がんばってこの2週間でちょっとだけは、できるようになったようなので(かなり怪しいですが・・・) どなたかアドバイスございましたら、お願いいたします。

  • マクロでタイムレコーダーを作りたいのですが・・

    マクロを使ってタイムレコーダーを作っています (マクロの勉強用です) ユーザーフォームで社員コードを入力し、出社をクリックすると エクセルシートに記録されるようにしたいのですが、どのように書けばいいか わかりません。 フォームにテキストボックスを作り、下に出社ボタンを作りました。 テキストボックスに数字を入力し、出社ボタンを押すというのが手順 なのですが、 社員コードから「どこに出社時刻を入力すればよいか」を判断させ、 ボタンを押した時刻を入力できるようにしたいです。 手順として、社員コードを入力し、出社ボタンを押すと、エクセルシートを 検索し、合致する社員コードを見つけ、見つかったらそこの列の今日の日付の 部分に時刻を入力・・となるのかな?と思うのですが。。 はっきりいってさっぱりです。。ご存知の方、ご教授ください。