- ベストアンサー
エクセルでマクロ?を使ってファイルを作る方法と参考資料
- エクセルでロータスファイルを作り直す際にマクロが組まれている場合、そのマクロを再現する方法を教えてください。
- マクロを起動するとB7にカーソルが移動し、データ入力が開始されます。B7~L7までのデータが入力された後、消えてB14~L14に入力されます。次にデータを入力するとB15~L15といった感じです。B列は10000から始まり、10ずつ増えていきます。マクロはB7に次に入力する番号を自動的に入力します。
- B7でエンターを押すとC7、入力してエンターを押すとD7にカーソルが移動します。H7の次は別のシートに飛びます。そこで補助と入力すると補助シート、補助パネル、補助制御盤などの候補が表示され、補助パネルに合わせてエンターを押すと最初のシートのI7に入力されます。入力が終わるとマクロが終了します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
例えば以下のマクロを入力シートの「シート名タブ右クリック」→「コードの表示」で開く画面に貼り付けて、シートに戻ると「ある程度希望に沿う」動作はすると思います。 でも実際の使われ方も分からないので「希望どおり」とはいかないでしょう。ましてや、 >そこで例えば 補助* といれると などは実際のシートと動きを見なければ作りようがありません。 ですからご自身でマクロを書くときの「参考」程度として見てください Private Sub Worksheet_Activate() Dim wkMax As Long On Error GoTo end0 Application.EnableEvents = False wkMax = Application.Max(Range("B14:B65536")) If wkMax = 0 Then Range("B7").Value = 10000 Else Range("B7").Value = wkMax + 10 End If Range("C7").Select end0: Application.EnableEvents = True End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim wkMax As Long On Error GoTo end0 If Not Intersect(Target, Range("B7:K7")) Is Nothing Then Target.Offset(0, 1).Select End If Application.EnableEvents = False If Target.Address = "$L$7" Then wkMax = Application.Max(Range("B14:B65536")) If wkMax = 0 Then Range("B7:L7").Copy Destination:=Range("B14") Else Range("B7:L7").Copy Destination:=Range("B65536").End(xlUp).Offset(1, 0) End If Range("B7").Value = Range("B7").Value + 10 Range("C7:L7").ClearContents Range("C7").Select End If end0: Application.EnableEvents = True End Sub
お礼
物凄く素早い回答をありがとうございます。 この短時間でこうも簡単に構文とか書けるのがうらやましいです。 試しに貼ってみて、動きの方を見させていただきました。 このように書けばこう動くというのが見えて凄く参考になります。 一つ一つの単語(関数?)を検索かけてどういう効果なのかを調べながら もう少し考えてみます。 ありがとうございます! 入ったばかりの会社で若い人がおらず・・・私も若くは無いですが。 何とかやってくれといわれて苦労してます。