2009-05-29 15 views
1

Excel 2003を使用していて、マクロを作成する必要があります。ユーザーは、日付、プロジェクト番号、フォルト、問題点、解決策の5つの入力を求めます。私はこれまでマクロを使ったことがないので、これをどのようにコードするのか分かりません。ユーザーがデータを入力すると、適切な列の下に移動します。これが行われた後、マクロは、マクロが再び実行されるまで、別の入力を求められません。これを行うための組み込みの方法はありマクロをExcelスプレッドシートに入力する

ActiveCell.Offset(1, -4).Select 

答えて

2
Sub TestMacro() 
    Range("A2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Date") 
    Range("B2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Project #") 
    Range("C2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Fault") 
    Range("D2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Problem") 
    Range("E2").Select 
    ActiveCell.FormulaR1C1 = InputBox("Solution") 
End Sub 
+0

ありがとう、現在の行に値を入力するのには効果がありましたが、次の値のセットはどのようにして次の行に入るので、値は上書きされません。ありがとうございます –

0

(あなたが尋ねると下すなわち次の行を)A3までアクティブセルを移動するには、これを使用しています。列ヘッダーをExcelシートの1行目に置き、セルA1を選択してDataメニューに移動し、Formを選択します。

これは、別のフィールドに基づいて1つのフィールドを設定するなどの操作を行うことはできません(例えば、選択された障害に依存する問題のリストを与える)。あなただけの迅速かつ簡単な何かが必要な場合、それはあなたがマクロを起動すると、あなたが何かをする前に、このコードを配置仕事

+0

これは、次の行にそれを移動するように見えない、基本的に私は5つの入力を実行し、データを入力して実行を停止し、マクロが次回行を下に。 –

+0

数字の1つにマイナス記号を忘れましたが、今修正しました。 – paulmorriss

2

をん:

Dim i As Integer 

Range("a1").Select 
Range(Selection, Selection.End(xlDown)).Select 
i = Selection.Rows.Count 

をこれは、あなたが常に「A1」にいくつかの値を持っていることを前提としてい入力されたデータの有効な行の最後に来るまで、空の行はないことを確認します。

この時点では、すでにデータが含まれている行の数に等しい値 'i'があります。

次に、あなたはこれがあなたのマクロはあなたの既存のデータの下に次の空白行にデータを配置することができます上記のクリスチャンペインのコードを使用していますが、

Cells(i + 1, 1).Select 

Range("A2").Select 

を変更することができます。

0

何か必要なのでしょうか?