- ベストアンサー
エクセル2003 でアンケート入力を作成したい
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
いろいろやってたら、初心者に難しい(使う人にやさしい?)ものができてしまった アドバイスができるほど、詳しくないのでそのままコピペの説明で申し訳ない 1. [Alt]+[F11] VBE起動 2. 挿入 - 標準モジュール 3. 下記 コピペ Sub 一覧表へ値を入れる() '変数の定義 Dim 挿入行 As Long Dim m As Byte Dim n As Long '一覧表の範囲を判断し(D12セルを選択して[Ctrl]+[Shift]+[*])、 ActiveWorkbook.Names.Add Name:="一覧表", _ RefersTo:=Range("D12").CurrentRegion 'データ入力部にのみ「一覧表」と名前を定義する Intersect(Range("一覧表"), Range("一覧表").Offset(1, 1)).Name = "一覧表" '変数の代入 挿入行 = Range("B1").Value m = 0 '挿入する行が空白でない場合に、上書きするか判断メッセージを出す For n = 1 To 5 If Range("一覧表").Cells(挿入行, n) = "" Then m = m + 1 Next n If m <> 5 Then If MsgBox("上書きしますか", vbOKCancel) = vbCancel Then Exit Sub End If '一覧表への値を入れる For n = 1 To 5 Range("一覧表").Cells(挿入行, n) = Cells(2 + n, "B").Value Next n End Sub Sub 一番上の空白セルに値を入れる() Dim 挿入行 As Long Dim n As Long Dim i As Long Dim m As Byte Dim 新規 As Long 挿入行 = Range("B1").Value '一覧表の範囲を判断し(D12セルを選択して[Ctrl]+[Shift]+[*])、 ActiveWorkbook.Names.Add Name:="一覧表", _ RefersTo:=Range("D12").CurrentRegion 'データ入力部にのみ「一覧表」と名前を定義する Intersect(Range("一覧表"), Range("一覧表").Offset(1, 1)).Name = "一覧表" For i = 1 To Range("一覧表").Rows.Count m = 0 For n = 1 To 5 If Range("一覧表").Cells(i, n) = "" Then m = m + 1 Next n If m = 5 Then Exit For Next i If i > Range("一覧表").Rows.Count Then MsgBox "一覧表に空白行がありません" Exit Sub End If If MsgBox("一覧表 " & i & "行に新規挿入しますか", vbOKCancel) = vbCancel Then Exit Sub For n = 1 To 5 Range("一覧表").Cells(i, n) = Cells(2 + n, "B").Value Next n MsgBox "一覧表 " & i & "行にデータが入力されました" End Sub 4. ボタンへ登録 2種類 No.1さんの回答と組み合わせるなどして適宜編集することをお勧めします
その他の回答 (3)
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
No3です。No.1さんではなく No.2の回答者:web2525さんと組み合わせてどうぞ でしたm(_ _)m
- web2525
- ベストアンサー率42% (1219/2850)
ボタンにマクロを登録する方法 http://allabout.co.jp/gm/gc/297818/ 登録するマクロ Sub Macro1() Range("B3:B7").Copy Range("E12").End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True Range("B3:B7").ClearContents Range("B3").Select End Sub 動作はB3:B7範囲をコピーして、E12セルから見た最終データの下のセルに、行列を入れ替えて貼り付けを実施しています >「B2セル」に自動で最上の空白行の数値を持ってくる B2セルに計算式 =COUNTA(E:E) と入力
- chonami
- ベストアンサー率43% (448/1036)
えっと、直接E列からI列のところに入力していくのでは駄目なんですか?