- ベストアンサー
VBAでアクティブセルに1行目の日付を入力する方法
- VBA初心者の方が任意のセルを選択し、マクロを実行すると1行目の日付(日のみ)がそのセルに入力される方法について教えてください。
- 考えたコードでは、Do Whileを使って日付があるまでアクティブセルをオフセットしていく方法を試していますが、今日の日付にしか反応しない問題があります。日付というだけで反応する方法や、より効率的なコードの作り方についても教えていただきたいです。
- 処理に時間がかかると感じているので、より高速なコードの作成方法も知りたいです。初心者の方でも理解しやすい説明があると助かります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- Excel VBA アクティブセルからある一定のセルまでの範囲選択
Excel VBA アクティブセルからある一定のセルまでの範囲選択 Excel2003を使用しています。 アクティブセルからC列に『計』と入力されている行の1行上のD列までを選択状態にするマクロを作成しようとしています。 C列に『計』と入力されている行は下記のように複数あるので、アクティブセルの行以下に入力されている次のC列の『計』の1行上までとしたいのですが、どのようにコードを書いたらいいでしょうか? 例えば… A2セルをアクティブにしていてマクロを実行するとA2:D3が選択状態に A7セルをアクティブにしていてマクロを実行すると、A7:D9が選択状態になるように という具合です。 わかりづらくて申し訳ありませんが、よろしくお願いします。 A B C D 1 日付 № 品名 金額 2 1/1 1 ○○○ 1,000 3 1/2 2 ××× 1,500 4 計 2,500 5 6 7 1/1 5 ○×○ 2,000 8 1/3 6 ××○ 1,200 9 1/4 7 ×○○ 2,500 計 5,700 : :
- ベストアンサー
- オフィス系ソフト
- アクティブセルの行のセルを複数指定選択-VBA
アクティブセルの行のセルを複数指定選択-VBA コマンドボタンを押すとアクティブセルのある行のセルを個別に選択したいのですが、どのようにVBAにコードを入力すればいいのか悩んでいます。 例:選択したい列(セル)A:C,F:I アクティブセルがA2にある時、コマンドボタンを押してA2,B2,C2,F2,G2,H2,I2を選択する。 アクティブセルがA10にある時は、A10,B10,C10,F10,G10,H10,I10を選択する。 ご回答お待ちしています。宜しくお願い致します。
- ベストアンサー
- Visual Basic
- VBA アクティブセルに対しての作業に関して
-質問内容-VBA作成2つ- ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセルを指定した段階で オフセット(縦下方向にO1991のセルに入れた数値分下に、ヨコに0) 移動しアクティブセルにする ------------------------------------------------------ ------------------------------------------------------ 別々のVBAでやりたいこと (1)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下にペースト(貼り付け) したい 例) A 1 成功 ←アクティブセルをコピー 3 成功 ← ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセル~オフセットしたセルまでを最初にアクティブセルからコピーし →アクティブセル~オフセットしたセルまでペーストする ----------------------------------------- (2)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下に アクティブセル~オフセットされたセル位置まで フィルダウンさせたい 例) A 1 1 ←アクティブセルをコピー 5 ←オフセットセル 2つのVBAのやり方/プログラムの表記/組み合わせ方を 無知で愚かな私ですが どうかご教授のほど 宜しくお願い致します (>_<)謝↓ペコッ --------------------------------------- --------------------------------------- 変数を使うのでしょうか? セル範囲を指定するとして Range("ActiveCell:ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Active") となるのでしょうか? 又変数の使い方として Dim a As Range 又は Dim a As Objectになるのでしょうか この際代入として使うには a = ActiveCell b = ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate になるのでしょうか 本当に度々申し訳ないのですが 宜しくお願いします (:>_<:)ペコリ Range(ActiveCell).copy ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0)ActiveCell.PasteSpecial End Sub
- ベストアンサー
- Visual Basic
- VBA アクティブセルに対しての作業に関して
-質問内容-VBA作成2つ- ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセルを指定した段階で オフセット(縦下方向にO1991のセルに入れた数値分下に、ヨコに0) 移動しアクティブセルにする ------------------------------------------------------ ------------------------------------------------------ 別々のVBAでやりたいこと (1)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下にペースト(貼り付け) したい 例) A 1 成功 ←アクティブセルをコピー 3 成功 ← ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセル~オフセットしたセルまでを最初にアクティブセルからコピーし →アクティブセル~オフセットしたセルまでペーストする ----------------------------------------- (2)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下に アクティブセル~オフセットされたセル位置まで フィルダウンさせたい 例) A 1 1 ←アクティブセルをコピー 5 ←オフセットセル 2つのVBAのやり方/プログラムの表記/組み合わせ方を 無知で愚かな私ですが どうかご教授のほど 宜しくお願い致します (>_<)謝↓ペコッ --------------------------------------- --------------------------------------- 変数を使うのでしょうか? セル範囲を指定するとして Range("ActiveCell:ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Active") となるのでしょうか? 又変数の使い方として Dim a As Range 又は Dim a As Objectになるのでしょうか この際代入として使うには a = ActiveCell b = ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate になるのでしょうか 本当に度々申し訳ないのですが 宜しくお願いします (:>_<:)ペコリ Range(ActiveCell).copy ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0)ActiveCell.PasteSpecial End Sub
- ベストアンサー
- Excel(エクセル)
- ”アクティブセル行」の一行下を選択”するマクロ
■ ”アクティブセルの、1個下の行を選択し、新しい空白行を一行挿入” ■次にその”アクティブセルのA列とB列の値を、 新しく作った空白行に、コピー ・・・といったマクロを組もうとしております。 たとえば 12行目を選択するプログラム(コマンド?マクロ?)は、 Rows(12:12) となっていたので、それにならって Rows(activecell:B) などとやってみたのですが、うまくいきませんでした。 このような場合、どうしたらよいのかアドバイスをいただけると助かります。 どうぞ、よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- エクセルのVBAのコード内で指定セルを相対参照する方法をお教えください。
ActiveCell.Offset(0, 2).Range("A1:C1").Select 前記のコードは選択範囲をアクティブセルより相対参照にて指定するものですが、下表にてアクティブセルをA1として、コード内のC1に換えてA1(アクティブセル)の数値によって選択範囲とするセル数を指定するにはどうしたらよいでしょうか?(アクティブセルをA2,A3とした実行結果を2,3行のようにしたいのです) A B C D E F 1 3 * * * 2 4 * * * * 3 2 * *
- 締切済み
- Visual Basic
- VBAアクティブセル行で列範囲選択
マクロ A1をアクティブセルにして A:H列の行を選択するにはどう書けばいいのでしょうか? この場合A1:H1が選択されればいいのですが range("A:H " & activecell.row).select みたいな感じだとエラーになってしまいます。
- ベストアンサー
- その他MS Office製品
- エクセル VBA アクティブセルから移動する
アクティブセルへ入力し、エンターを押すと右隣のセルへ移動するように Module 1へ Sub セル() ActiveCell.Offset(0, 1).Select End Sub と、入れましたが、エンターを押すと、下のセルへ移動してしまいます。 どこを直せばいいでしょうか?
- ベストアンサー
- Excel(エクセル)
- エクセルでアクティブセルに対応して自動で他セルの色付け
エクセルでアクティブセルを選択したとき、 その選択したアクティブセルの行すべてに 色を自動で入れる、もしくはその10セル隣の セルを自動で色を付ける事ってできますか? 具体的な内容としては a b c d e f g h 1 色付 選択 2 3 例えばG1セルを選択したとき、A1セルに色を付ける もしくは、G1セルを選択したとき、1の行すべてに 色を付けるという具合です。 このようにしたい理由として、行の間で関数が関連 づけられていて、行を間違って入力してしまうと 関連がすべて無意味になってしまうため、行を 間違わずに入力したいために、アクティブセルに 対して横の1列もしくは、横の関連するセルを目立たせ たいため、したいのですが、 良いやり方があれば、教えていただけないでしょうか
- ベストアンサー
- オフィス系ソフト
- VBA 数日後の日付をうまく求められません
Windows7/Excel2002を使っています。 エクセルVBAで、数日後の日付をうまく求められません。 例えば、31MAR.xls というエクセルファイルがあります。 (ファイルは、デイリーベースで存在します。) このファイル名の月と日にちを変数に入れます。 DD = 日にち (例えば、31日なら“31”) MMM = アルファベット3文字 (3月なら“MAR”) 入力シートのセルC3に納期日を入れたいのです。 納期日は5日後もあれば、6日後もあり、取引先によって違いますので、 31MAR.xlsファイルのSheet1に、会社毎の納期日を入力しておきます。 セルA列(会社名) セルB列(納期日) ABC会社 5 DEF会社 6 GHI会社 7 セルB列は、5とか6とかシンプルに数字のみ入っています。 今日の日付をファイル名から変数に格納し、それにB列の数字をプラスした日付を求めたいのです。 -------------------- Dim HIDUKE As Date Dim PLUS As Integer HIDUKE = Left(ThisWorkbook.Name, 5) MMM = Mid(HIDUKE, 3, 3) DD = Left(HIDUKE, 2) Set NYURYOKU = Workbooks(DD & MMM & ".xls").Worksheets("入力") ※ここで、変数PLUSを求める記述あり(省略させていただきます) NYURYOKU.Cells(3, 3) = HIDUKE + PLUS -------------------- 上記マクロを起動すると、 NYURYOKU.Cells(3, 3) = HIDUKE + PLUSのところで 実行時エラー‘13’ 型が一致しません。 となってしまいます。 変数HIDUKEには、31MARと入ってきており、 変数PLUSには、処理したい会社の納期日は入ってきています。 ABC会社であれば、NYURYOKU.Cells(3, 3)に 4月4日 と値を入れたいのです。 どなたか教えてください。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
お礼
そうです!これです! こんな簡単なことだったんですね。 失礼しました。 もっと基本を勉強したいと思います。 回答ありがとうございます!