- ベストアンサー
EXCEL VBA 指定した数字ごとに表示
WindFallerの回答
- WindFaller
- ベストアンサー率57% (465/803)
以下は、 http://okwave.jp/qa/q8764434.html の質問を元にしました。 何か、同じような質問と、同じようなパターンのコードが、数ヶ月に渡って続いているようです。 もう少し考えて、丁寧に質問したほうがよいと思いますね。ポイントを押さえたほうがよいです。エラー処理には、ユーザーの任意の値ですから、こちら側では、想像しにくいものがあります。 >a = array("cell(1,1)", "cell(1,2)", "cell(1,3)")みたいなイメージです これは、よく分からないですね。セルを参照するのなら、配列など必要はないはずです。 '//単一セルを使う場合 Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Column <> 4 Then Exit Sub 'D列 If .Count > 1 Then Exit Sub '複数のセルをまたいだ場合は、不可 If .Value = "" Then .Offset(, 2).Clear: Exit Sub 'D列の数字を削除すれば、F列も消える If .Value < 1 Or .Value > 3 Then Exit Sub '入力は1から3まで If .Offset(, 2).Value = "○" Then Exit Sub If TimeValue(Cells(.Value, 1).Text) > Time Then Exit Sub Application.EnableEvents = False '再帰を防ぐ .Offset(, 2).Value = Cells(.Value, 1).Text '2列先にコピー・ペーストする Application.EnableEvents = True End With End Sub '// >別のセルからコピーするとうまくいきません。 どこからどこへ、何をコピーしたのか分からないので、私には、よく意味が理解できません。 もしかしたら、D列に入力をコピーで貼付けしたという意味なら、上記のコードが大幅に変わってきます。 '//複数のセルを一度に使う場合 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range If Target.Column <> 4 Then Exit Sub 'D列 For Each c In Target If c.Value <> "" Then 'セルを消したり、空だった場合 If c.Value >= 1 And c.Value <= 3 Then '入力は1から3まで If c.Offset(, 2).Value <> "○" Then If TimeValue(Cells(c.Value, 1).Text) <= Time Then Application.EnableEvents = False '再帰を防ぐ c.Offset(, 2).Value = Cells(c.Value, 1).Text Application.EnableEvents = True End If End If End If Else c.Offset(, 2).Clear '2列先のセル内容を消去 End If Next c End Sub '//
関連するQ&A
- エクセルで指定した数字以下の数字を抽出して抜き出す
エクセルで指定した数字以下の数字を抽出して抜き出したいです 例としては A列 B列 いぬ 1 ねこ 2 うし 3 とら 1 はと 2 この表から空いているセルに任意の数字を入力して それ以下の数字を別のセルに抽出したいです たとえば2を入力したら いぬ 1 ねこ 2 とら 1 はと 2 このような結果を別のセルに抽出したいです オートフィルターとマクロは使わない方向でお願いします 似たような質問としては下のURLでしたが http://okwave.jp/qa/q3200952.html?from=recommend これでは指定した数字と同じものしか抽出出来なかったので質問させていただきました
- ベストアンサー
- Excel(エクセル)
- エクセルで数字10が1に変わる。どうして?
セルに10と入力し、エンター押して10と表示されたのに、もう一度エンター押して改行したら、1に変わってしまう。11と入力するとエンター2回しても11になるのに。どうして?教えてください。
- ベストアンサー
- オフィス系ソフト
- EXCELの数字入力後の表示について
EXCELにてセルに数字を入力、エンターを押すと表示される桁数が1/100になってしまいます。(例)2000入力すると、20と表示される。)何か対処法はありますか?お願いします。
- 締切済み
- Windows Vista
- エクセルで数字の入力
エクセルで、セルに「9092123800037414」と入力して、Enterを押すと、「9.092+15」 と表示され、ツールバー(関数の挿入ボタンの右の部分)には、「9092123800037410」と表示されてしまいます。 最後の0を消して、4に入力しなおしても、Enterを押すと、同じようになります。 セルの書式設定で、数値、の表示にしても最後が0のままの表示になってしまいます。 なぜそうなるのでしょうか?またどうすれば、正しく入力したままの数字が確定されるのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excel 全角数字が半角数字に変化してしまう
Excel 2003 です。 文字列に設定してある、文字より充分大きいセルに 全角数字5を入力して (a)Enterキーを押すと (b)Enterキーを押してから矢印キーを押すと (a)又は(b)の場合 全角数字5が半角数字5に自動的に変化してしまうことがありました。 (「・・・ありました」ということで、いつもそうなるということではありませんが。) なにか設定を変えたこともありませんし、 どのようなときその現象がでるのかも把握できていません。 Q1. このような変化を防ぐ方法を教えてください。 Q2. 「おかしいな?」と思って再入力を繰り返しているとセルの左上の隅に 三角マークが表示されるようになりました。 この三角マークの意味と表示させない方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- 再度の質問です。エクセル 列の数値の表示
下記の質問にて回答を得て締め切りました。 http://okwave.jp/qa/q7411807.html 回答いただいた「セルの書式設定→表示形式→標準として下さい」を実行しますと、 小数点以下の桁数は任意に表示されます。 ただ、例えば2.10と打ち込んでも2.1となってしまいます。 (2.11と打つと2.11と表示されます) 出来ましたら、キーボードからの入力通りに表示させる方法を再度教えていただければと思います。 よろしくお願いします。
- ベストアンサー
- 財務・会計・経理
- Excelでの数字の表示
セルA1に Number セルB1に 0010 と入力されていて、 セルC1に Number0010 と表示させたいとき、どのような数式を使えばよいのでしょうか。 B1の表示形式をユーザー定義で 0000 としても、 =A1&B1 とすると、 Number10 と表示されてしまいます。 よろしくお願い致します。
- ベストアンサー
- その他MS Office製品
- INDIRECT関数で指定のセルを表示したい
こちらの質問でINDIRECT関数を使って指定のセルを指定できました。 http://okwave.jp/qa/q6920409.html だたエラーになってしまします。 おそらく1つ1つ値の更新をしないといけないと思います。 これではかなり手間なのでINDIRECT関数を使って指定のセルを自動で表示できませんか? 同じフォルダ内のブックを使います。
- ベストアンサー
- その他MS Office製品
- word上の数字(111097801829)をコピーしてエクセルのセル
word上の数字(111097801829)をコピーしてエクセルのセルに貼り付けるとそのままの数字が入力されるのですがエンターをクリックすると数字が(1.11098E+11)に変わります。なぜ?でしょうかそのまま表示させるにはどうすれば良いのでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excel VBA-改行について
Excel VBAで、UserFormのTextBoxに入力されたものをワークシートに表示させたいのですが、 TextBox内で、「Enter」キーが押されたら改行する方法と TextBoxで入力された通り(改行等)にワークシートのセルに表示する方法を どなたか教えて下さい。
- ベストアンサー
- Visual Basic