Gizport
1 回答
0
Share (facebook)
140
view
全般

以前2度ほど質問させていただいたVBAを使い始めたばかりの初心者です...

以前2度ほど質問させていただいたVBAを使い始めたばかりの初心者です。
ご回答を参考に以下のような表を作成中ですが、なかなか思ったようにできません。
また、また良きアドバイスをお願いします。<m(__)m> 質問は以下の3点です。(見にくいですが、図も添付しました)
①B5に数字を入力、累計をC5に表示する。以下B6の累計はC6に、B8の累計はC8に表示するというようにB列に入力した数字 の累計をC列に表示する。
I列、J列についても同様にI列に入力した数字の累計をJ列に表示する。
ここまでは、なんとかなったのですが次の②から、さっぱりお手上げの状態です。

②B10に入力した数字の入力履歴をP列のP10から縦に1つずつ表示する。
(例.B10に1、2、3と入力した時C10には累計の6、P10には1、P11には2、P12には3と入力履歴を表示させる)
B11に入力した数字の入力履歴はQ列のQ10から縦に1つずつ表示する。
同様にB12の入力履歴はR10から縦に1つずつ表示する。
これを繰り返しB13はS10から、B14はT10から、B15はU10からそれぞれ表示させる。
I10~I15までに入力した数字も、J列に累計、W~AB列にそれぞれ入力履歴を縦に1つずつ表示させる。

③F、M列に設けたCボタンで直前の入力をクリア(例.B8に1、2、3、4と入力した時、直前に入力した4のみをクリアし累計も10 から戻って6を表示する)
G、N列に設けたACボタンで入力すべてをクリアする。
以上、この3点について皆様方、良きご回答をよろしくお願いします。
Yahoo!知恵袋 3900日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
amachann3625さん

一度に複数の質問も、VBA初心者が望むものとしても、ちょっと欲張りすぎの感がありますが、、、

(1)と(2)について
P9:U9、W9:AB9 にはタイトル行がある想定です。
シート名タブを右クリックして「コードの表示」を押下、出てきた VisualBasicEditor画面(VBE画面)にコピペします。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, myCol As Integer

On Error Resume Next
For Each r In Target
If Not Intersect(r, Me.Range("B10:B15,I10:I15")) Is Nothing Then
If IsNumeric(r.Value) And IsNumeric(r.Offset(0, 1).Value) Then
Application.EnableEvents = False
r.Offset(0, 1).Value = r.Offset(0, 1).Value + r.Value
myCol = r.Row + r.Column + 4
Me.Cells(Me.Rows.Count, myCol).End(xlUp).Offset(1, 0).Value = r.Value
Application.EnableEvents = True
End If
End If
Next r

End Sub


(3)については、画面も見えず条件が良く解かりません。

> F、M列に設けたCボタン

Cボタンは CommandButton の独自略だろうと思われますがこれが F列に 1つなのか、F10:F15の各行にそれぞれ配置するつもりなのかで処理コードも全然変わります。

取り合えず、ActiveX(コントロールツールボックス)の CommandButton を 各列の各行に複数置く前提です。コードは全てシートモジュールに書きます。

F10 に CommandButton1
G10 に CommandButton2
M10 に CommandButton3
N10 に CommandButton4

Private Sub CommandButton1_Click()
Call CmdBtn(CommandButton1)
End Sub

Private Sub CommandButton2_Click()
Call CmdBtn(CommandButton2)
End Sub

Private Sub CommandButton3_Click()
Call CmdBtn(CommandButton3)
End Sub

Private Sub CommandButton4_Click()
Call CmdBtn(CommandButton4)
End Sub


Sub CmdBtn(cb As Object)
Dim r As Range, lr As Range

Set r = cb.TopLeftCell
Select Case r.Column
Case 6, 13
Set lr = Me.Cells(Me.Rows.Count, (r.Row + r.Column)).End(xlUp)
If IsNumeric(r.Offset(0, -3)) And IsNumeric(lr) Then
r.Offset(0, -3).Value = r.Offset(0, -3).Value - lr.Value
lr.ClearContents: r.Offset(0, -4).ClearContents
End If
Case 7, 14
Set lr = Me.Cells(Me.Rows.Count, (r.Row + r.Column - 1)).End(xlUp).Offset(1, 0)
r.Offset(0, -5).ClearContents
r.Offset(0, -4).ClearContents
Me.Range(Me.Cells(10, r.Row + r.Column - 1), lr).ClearContents
End Select
End Sub
Yahoo!知恵袋 3894日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
47
Views
質問者が納得まぁ少なくても星撮れるくらいにならないと、 現地で応用出来ませんので、国内にいるうちに まともに星撮れるようになってください。 そうしないと、設定うんぬんは「現場の状況」でまったくかわります。 よって、答えられないw S95自分も持ってますが、さすがにマイナス25℃付近での動作は 確認してません。 マイナス8℃ほどなら星撮る時に動作してましたけどw まぁ記念写真程度の「撮影時間」であれば、 バッテリーもさほど気にしなくてもいいでしょう。 予備は必要ですけど。 短時間で撮影するんですから、短時間で「ピン...
3584日前view47
全般
72
Views
質問者が納得APNの設定が間違ってるだけかと思います。 ちゃんと設定してますか?
3589日前view72
全般
72
Views
質問者が納得メモリーは相性問題がつきまといます。ので、メモリーメーカー及びマザーボードメーカーの対応リストで確認する事が重要です。 また、0x0000000A及び0x0000007Fのエラーメッセージを検索しエラー原因をつかむことも大事です。
3703日前view72
全般
80
Views
質問者が納得sumifs 関数でどうですか!! http://www.becoolusers.com/excel/sumifs.html
3684日前view80
全般
57
Views
質問者が納得複数月をカウントすることができます。 次のようにすればよいでしょう。 仮に3ヶ月までの集計をするとしたらA1セル、B1セル、C1セルに対象とする月をそれぞれ入力します。 A4セルには次の式を入力してF4セルまでドラッグコピーします。 =IF($A1="",0,COUNTIF(INDIRECT($A1&"!$C$2:$C$1000"),A3))+IF($B1="",0,COUNTIF(INDIRECT($B1&"!$C$2...
3686日前view57

取扱説明書・マニュアル

1972view
http://www.nttdocomo.co.jp/.../F-12C_J_OP_All.pdf
147 ページ5.99 MB
もっと見る

関連製品のQ&A