凸社のポイント数をポイント毎にA1に入力し、合計をB1に表示させたいのですが!
毎回同じセルに数値を入力し別のセルに合計を出す方法を教えてください!!

このQ&Aに関連する最新のQ&A

A 回答 (4件)

対象範囲をA1:C10にして、undo可能にしてみました。

今は7回(任意に指定できます)

○ThisWorkbookに貼り付けます。
'A1:C10に入力された数値をD1:F10に加算し続ける。undo可能。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
If Union(Range("A1:C10"), Target).Address <> "$A$1:$C$10" Then Exit Sub
If IsNumeric(Target) = False Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 3) = Val(Target.Offset(0, 3)) + Target
If undoFlg = False Then 'undoでない時は入力を記憶
rw = Target.Row
cl = Target.Column
If idx(rw, cl) < undoNum Then 'undo最大回数前
idx(rw, cl) = idx(rw, cl) + 1
iDT(rw, cl, idx(rw, cl)) = Val(Target)
Else 'undo最大回数以上になった
For ct = 2 To undoNum '記憶した入力をずらす
iDT(rw, cl, ct - 1) = iDT(rw, cl, ct)
Next
idx(rw, cl) = undoNum
iDT(rw, cl, idx(rw, cl)) = Val(Target)
End If
End If
Application.EnableEvents = True
End Sub

○Sheet1(例えば)に貼り付けます。
'undo。コントロールツールボックスのボタンを配置
Private Sub CommandButton1_Click()
rw = ActiveCell.Row '行
cl = ActiveCell.Column '列
If ActiveCell.Count <> 1 Then Exit Sub
If Union(Range("A1:C10"), ActiveCell).Address <> "$A$1:$C$10" Then
Cells(rw, cl).Select: Exit Sub
End If
If idx(rw, cl) = 0 Then
MsgBox "undoできません。": Cells(rw, cl).Select: Exit Sub
End If
If MsgBox(idx(rw, cl) & " 回 undoできます。", vbOKCancel) = vbCancel Then
Cells(rw, cl).Select: Exit Sub
End If
'undo
undoFlg = True
Cells(rw, cl) = -iDT(rw, cl, idx(rw, cl))
Cells(rw, cl) = -iDT(rw, cl, idx(rw, cl) - 1)
Cells(rw, cl) = iDT(rw, cl, idx(rw, cl) - 1)
undoFlg = False
iDT(rw, cl, idx(rw, cl)) = 0
idx(rw, cl) = idx(rw, cl) - 1
Cells(rw, cl).Select
End Sub

Sub EventsFukki()
Application.EnableEvents = True
End Sub

○標準モジュールに貼り付けます。
Public iDT(10, 3, 7) As Long '入力値。3つ目の7はundo最大回数
Public idx(10, 3) '入力個数。行と列個数分
Public rw, cl As Integer '行、列
Public ct As Integer 'カウンタ
Public undoFlg As Boolean 'undoの時True
Public Const undoNum = 7 'undo最大回数
    • good
    • 0

A1ではなく電卓を使うのはどうでしょうか?


クイック起動に電卓のショートカットを入れておけば直ぐに起動することが出来ますし合計は「編集」-「コピー」でコピーしてセルに貼り付けることが出来ます。

クイック起動は「スタート」ボタンの右隣にアイコンが表示された領域のことです。
    • good
    • 0

A1に入れるとB1に加算します。

通常の方法では期待薄なのでマクロを書いてみました。A1に入力後Enterでセルが動かないようにしていたほうがいいですね。

ツール→マクロ→Visual Basic EditorでVBE画面に移って
表示→プロジェクトエクスプローラでプロジェクトエクスプローラ画面を出して、ThisWorkbookをダブルクリックして、開いたコードウインドウに下記コードを貼り付けます。
シートに戻って、A1に入力するとそれをB1に加算し続けます。
入力チェックはしていますが、何が起きるか分かりませんので、エラーが起きて、B1に加算しなくなったらEventsFukkiを動かしてください。元に戻ります。

'A1に入力された数値をB1に加算し続ける
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub 'A1のみ
If IsNumeric(Target) = False Then Exit Sub '数値のみ
Application.EnableEvents = False 'イベントを止める
Range("B1") = Val(Range("B1")) + Target '加算
Application.EnableEvents = True 'イベントを可に
End Sub

'何かのエラーで加算しなくなったらこれを動かす。イベントを起こす
Sub EventsFukki()
Application.EnableEvents = True
End Sub
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。上手くいきました。もしA1に入力ミスをした場合、1つ前若しくは2つ前に戻るアンドゥ機能もVBAで可能でしょうか?
今回は範囲がA1に入力なんですがA1:C10に入力したのをD1:F10に加算するといった場合にはなにか方法ありますでしょうか?

お礼日時:2001/06/23 00:48

Excelの場合、VBAというプログラム言語で


プログラムを組む必要があると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelアルファベットを含む数値から文字に変換

Excelで質問です。
アルファベットを含む数値から文字に変換する方法
例えば、下記のような変換方法はありますでしょうか?
101 → りんご
1A2 → みかん
101,1A2 → りんご,みかん

Aベストアンサー

こんにちは!
横からお邪魔します。

↓の画像のようにSheet2に表があり、Sheet1のB列に表示するようにしてみました。
他の方々と同じようにVBAになってしまいます。

Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、Sheet1のデータは1行目からあるとします。

Sub Sample1() 'この行から
Dim i As Long, k As Long, n As Long, c As Range, buf As String, myArray
Dim wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")

wS1.Columns(2).ClearContents
For i = 1 To wS1.Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
buf = ""
If InStr(wS1.Cells(i, 1), ",") > 0 Then
myArray = Split(wS1.Cells(i, 1), ",")
For k = 0 To UBound(myArray)
Set c = wS2.Columns(1).Find(What:=myArray(k), LookIn:=xlValues, LookAt:=xlWhole)
n = c.Row
buf = buf & wS2.Cells(n, 2) & ","
Next k
wS1.Cells(i, 2) = Left(buf, Len(buf) - 1)
Else
Set c = wS2.Columns(1).Find(What:=wS1.Cells(i, 1), LookIn:=xlValues, LookAt:=xlWhole)
n = c.Row
wS1.Cells(i, 2) = wS2.Cells(n, 2)
End If
Next i
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m

こんにちは!
横からお邪魔します。

↓の画像のようにSheet2に表があり、Sheet1のB列に表示するようにしてみました。
他の方々と同じようにVBAになってしまいます。

Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、Sheet1のデータは1行目からあるとします。

Sub Sample1() 'この行から
Dim i As Long, k As Long, n As Long, c As Range, buf As Strin...続きを読む

Aベストアンサー

書式>条件付き書式

セルの値が 次の値より小さい を選択
値は$B1とし、書式を設定。
設定したセルをコピーすればできませんか?

Qactionscript アルファベットを数値に変換できる?

Flash Actionscriptの開発で困ってます。
テキストフィールド1とテキストフィールド2があります。それぞれのフィールドに入力されたアルファベットを数値に変換(例えばAと入力されたら1、Bなら2、Cなら3)して、A+B=3のように足し算して返すにはどうしたらよいでしょうか??
こういうのを覆面算?っていうんでしょうか。

Aベストアンサー

ご使用の Flash のバージョンや ActionScript のバージョンなどがわかりませんので,
何とも言えませんが...。
(何とも言えないというのは場合によって答えがありすぎて,つまり変わりすぎて回答のしようがないということです。)



普通考えるのは ASCIIコード で対象参照すれば良いのではないでしょうか。
しかし,
規則が不規則な場合は配列やハッシュ(ハッシュもどき:結合配列)を使うかもしれません。



ActionScript1.0 or 2.0 で ASCII コードを使う方法

新規ドキュメントを作成して
フレーム1 に次のスクリプトをコピペして
「制御」→「ムービープレビュー」

-------------------------------------------------
// 変数 my_str の値を "A" とする
my_str = "A";
// 変数 my_str の 1 番目の文字を ASCII コードで出力
trace(my_str.charCodeAt(0));
// ↑ココで 65 が返るので 64 を引いてやる
trace(my_str.charCodeAt(0)-64);

// ↓"B"に関してもやってみる
my_str = "B";
trace(my_str.charCodeAt(0)-64);
// ↑ちゃんと 2 が返る
-------------------------------------------------



ActionScript1.0 or 2.0 で ハッシュもどきを使う方法

新規ドキュメントを作成して
フレーム1 に次のスクリプトをコピペして
「制御」→「ムービープレビュー」

-------------------------------------------------
// 変数 STR という Object を作成
STR = new Object();
// "A"エレメントの値を1,"B"エレメントの値を2,"C"エレメントの値を1 とする
STR = {A:1, B:2, C:30};

// "A"エレメントの値を取り出してみる
trace(STR["A"]);
// "B"エレメントの値を取り出してみる
trace(STR["B"]);
// "C"エレメントの値を取り出してみる
trace(STR["C"]);
// ↑ ちゃんと 「1」 「2」 「30」 が返りますね

// ちなみに値の型は何?
trace(typeof (STR["A"]));
// ↑numuber(数値) です
-------------------------------------------------



※ ASCII や ハッシュ が使えないバージョンでも
  場合によっては if文 を使えば乗り切れます。

ご使用の Flash のバージョンや ActionScript のバージョンなどがわかりませんので,
何とも言えませんが...。
(何とも言えないというのは場合によって答えがありすぎて,つまり変わりすぎて回答のしようがないということです。)



普通考えるのは ASCIIコード で対象参照すれば良いのではないでしょうか。
しかし,
規則が不規則な場合は配列やハッシュ(ハッシュもどき:結合配列)を使うかもしれません。



ActionScript1.0 or 2.0 で ASCII コードを使う方法

新規ドキュメントを作成して
フ...続きを読む

QA1セルに数値があり、B1セルには条件に応じた計算結果を表示させたいの

A1セルに数値があり、B1セルには条件に応じた計算結果を表示させたいのです。
関数を教えてください。

・条件 A1の数値が0~499の時は、B1に7500と表示
・条件 A1の数値が500~1999の時は、B1に「A1*15」の計算結果を表示

エクセル素人なので詳しく教えていただけると助かります。

よろしくお願いします。

Aベストアンサー

A1が2000以上の条件がないので
A1がブランクの場合ブランクとする場合は
以下の式どうでしょうか。
=IF(A1="","",IF(A1<500,7500,A1*15))

QPHPで、日本語からアルファベットに変換

PHP初心者です。
PHPプログラム上で、日本語からアルファベットに変換する書き方を探しています。
漢字仮名まじりの日本語を、アルファベットに変換できますか?

自分では、
$str = mb_convert_encoding($title,"ascii","UTF-8");
という風にやってみましたが、できませんでした。

どなたかお知恵をお貸しください。

Aベストアンサー

>> 日本語からアルファベットに変換する書き方を探しています。

ローマ字に変換する必要は無いのですよね?

英数字でもよいのなら
base64_encode("日本語");

アルファベットだけでなく数字や%などが混じっても良いのなら
urlencode("日本語")

いずれも逆の変換で元の日本語にも戻せます

Qエクセルでセルに入力した値によってそれに対応した数値で合計を出す

以下のような表を作成します

(あ)入力用の表
     A    B    C     D
1    品物   箱数   バラ個数  合計個数
2    りんご  3     7     157
3    みかん  2     9     209

(い)品物の一箱あたりの個数を記したデータの表
     A    B
100  品物   一箱あたりの個数
101  りんご  50
102  みかん  100
103  ぶどう  30

2行目について説明しますと、
まずA2に(い)の表のA列のリストに書いてある品物の名称を入力します。
次にB2に箱数を入力、最後に箱とは別にバラの個数をC2に入力します。
そうすると、りんごは一箱50個入りで、それ以外にバラで7個なので、
D2の合計個数は
3(箱)×50(個/箱)+7(個)=157(個)
となるような数式は、どのように書けばよろしいでしょうか…。

よろしくお願いします。

Aベストアンサー

こんなんでどうでしょうか
=VLOOKUP(A2,A101:B200,2,FALSE)*B2+C2

Qかなで書かれた文字をアルファベットに変換できませんか?

エクセルででも、なんででもいいのですが、かなで書かれた文字をアルファベットに一度に変換できないでしょうか? たとえば、エクセルの関数phonetic を使えば、漢字を仮名に変換できますよね? それと同じように、仮名をアルファベットに変換する方法はないでしょうか? もし、そんな便利なことができたら、とってもうれしいのですが。。

よろしくお願いいたします。m(__)m

Aベストアンサー

以前、似た質問に回答しました。

No.806286 質問:Excelで五十音順に並べ替えたい
http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

No.8の手順3)で、

kakasi -Kj -Jj

を実行すると、

(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ

(kabu)aiueo
(kabu)inoue
(kabu)urashima
(kabu)abeshouten
(kabu)ishiishouten
(ari)aiueo

と変換できました。

参考URL:http://kakasi.namazu.org/, http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

Q複数のセルすべてに数値が入れば別セルに1と入力

エクセルについて
例えば、A1とA2とA3とA4のすべてに数値が入れば、B1に1としたい。
上記Aセルにひとつでも空白があれば、B1も空白としたいのです。
宜しくお願いいたします。

Aベストアンサー

>すべてに数値が入れば、B1に1としたい。
>上記Aセルにひとつでも空白があれば、B1も空白としたいのです。
条件が不十分です。
それらのセルに文字列が入った場合はどうなるのでしょう?

「空白以外なら」と「何かが入力されていれば」とは別物です。
また、「空白」と「数式によって""が入力されているため何も表示されない」もこの先別物になりますので質問文内に記述したほうがいいでしょう。

そのうちの「すべてが空白なら」で条件分岐すると
B1=IF(COUNT(A1:A4)<>0,"",1)
でできるでしょう。

ただし、指定範囲に数式が入っていて、その数式の結果が「""」の場合は、空白とみなしてくれません。
その場合は
B1={IF(SUM(LEN(A1:A4))<>0,"",1)}
という配列数式でできるでしょう。

Q全角アルファベットを半角アルファベットに変換

Word 2003 で文書中の全角アルファベットを半角アルファベットに一括変換するにはどうすればよいでしょうか。一括が無理なら、個別でもかまいません。

Aベストアンサー

全角英字を半角に一括にするなら検索を使ってはいかが。
[検索]ダイアログで[ワイルドカード]にチェックを入れておきます。

検索する文字列 : [A-Z]  (AとZは全角英字にして記号は半角)

[見つかったすべての項目を強調表示する]へとチェックを入れます。
これで[すべて検索]ボタンを押します。

全角英字がすべて選択されたら、ANo.1の回答にもある[文字種の変換]
をします。

Qエクセルにてセルへ数値を入力時、事前に入力していた値との差を別のセルに表示させたいです。

エクセルにてA1のセルに数値を入力した場合(事前に入力していた値-入力値)の差を隣のセル(B1)に表示し、再びA1に入力した数値の差をそのまた隣のセル(C1)に表示、再びA1に入力した数値の差をそのまた隣のセル(D1)に表示、再び…
と繰返し入力した数値の差を右列へ順番に表示させていきたいのですが、どなたか方法を教えて下さい。

又、入力した時点の日付けも、差を表示させた下のセルに表示させる方法もお願いします。

Aベストアンサー

たとえばA20を作業セルとして利用するとして

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then

Cells(1, Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column + 1).Value = Range("A1").Value - Range("A20").Value
Cells(1, Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column).Offset(1, 0).Value = Date
Range("A20").Value = Range("A1").Value

End If

End Sub

でいかがでしょう


人気Q&Aランキング

おすすめ情報