• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでマクロ?を使ってファイルを作るんですが)

エクセルでマクロ?を使ってファイルを作る方法と参考資料

このQ&Aのポイント
  • エクセルでロータスファイルを作り直す際にマクロが組まれている場合、そのマクロを再現する方法を教えてください。
  • マクロを起動するとB7にカーソルが移動し、データ入力が開始されます。B7~L7までのデータが入力された後、消えてB14~L14に入力されます。次にデータを入力するとB15~L15といった感じです。B列は10000から始まり、10ずつ増えていきます。マクロはB7に次に入力する番号を自動的に入力します。
  • B7でエンターを押すとC7、入力してエンターを押すとD7にカーソルが移動します。H7の次は別のシートに飛びます。そこで補助と入力すると補助シート、補助パネル、補助制御盤などの候補が表示され、補助パネルに合わせてエンターを押すと最初のシートのI7に入力されます。入力が終わるとマクロが終了します。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.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

neo556
質問者

お礼

物凄く素早い回答をありがとうございます。 この短時間でこうも簡単に構文とか書けるのがうらやましいです。 試しに貼ってみて、動きの方を見させていただきました。 このように書けばこう動くというのが見えて凄く参考になります。 一つ一つの単語(関数?)を検索かけてどういう効果なのかを調べながら もう少し考えてみます。 ありがとうございます! 入ったばかりの会社で若い人がおらず・・・私も若くは無いですが。 何とかやってくれといわれて苦労してます。

関連するQ&A