- 締切済み
エクセルのコード表示について・・・
(1) If Target.Column <> 4 Then Exit Sub Target.Offset(0, -2) = "1" (2) If Target.Column <> 35 Then Exit Sub Target.Offset(0, -2) = "2" (1)、(2)のコードを入力したのですが、セルには1としか表示されません。。 (2)の方を優先したい時は、どうすればいいのでしょうか???
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- エクセルのコード表示についてですが。。
Private Sub Worksheet_Change(ByVal Target As Range) (1)If Target.Column <> 4 Then Exit Sub Target.Offset(0, -3) = Now() ⇒特定のセルに日時自動表示 (2)If Target.Column <> 4 Then Exit Sub Target.Offset(0, 1) = "DUMMY" ⇒特定のセルにDUMMYと自動表示 (3)If Target.Column = 4 Then Target.Offset(0, -2) = "1" Else ⇒特定のセルに1と自動表示 (4)If Target.Column = 35 Then Target.Offset(0, -2) = "2" ⇒特定のセルに2と自動表示 End If End If (5)If Target.Value = "T" Or Target.Value = "t" Then Target.Value = "田中" ⇒Tと入力すると田中と変換して表示 ElseIf Target.Value = "H" Or Target.Value = "h" Then Target.Value = "林" ⇒hと入力すると林と変換して表示 End If End Sub 上のようなコードを入力すると(3)と(5)が機能しません。。なぜでしょうか??コードの表示がまずいのでしょうか??
- 締切済み
- その他([技術者向] コンピューター)
- エクセルのマクロコードについて
エクセルのマクロコードに付いて教えて下さい。 下記のマクロコードがありますが、 Option Explicit ' Private Sub Worksheet_Change(ByVal Target As Range) ' Static Memo(1 To 3) As Long Dim Cell As Range ' If Intersect([A1:C1], Target) Is Nothing Then Exit Sub End If ' For Each Cell In Target ' If Cell = "" Then Memo(Cell.Column) = 0 End If Next Cell Set Cell = Target(1) ' If Not IsNumeric(Cell) Or Cell = "" Then Exit Sub End If ' Application.EnableEvents = False Memo(Cell.Column) = Memo(Cell.Column) + Target Target = Memo(Cell.Column) Application.EnableEvents = True End Sub セル位置の指定を変更する場合は、どの様に書けば良いのですか? このコードですと、セルA1からc1の入力指定でなっていますが A1からAA1までとかにする場合やA1の結果を、A1ではなくA2に表示B1の結果をB2に表示する場合はどのように書くのでしょうか? マクロに付いて、殆ど知識が無いものですので 出来れば、分かり易い説明でお願いします。 宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセルのマクロコードについて
お世話になります。 下記コードで、セルごとにクリアをすると、エラーなくうごくのですが、セルをまとめてセルを消すと実行時エラー13型が一致しません。とでてIf Target.Value = "" Thenがだめだよとでてしまいます。 どなたか、回避の方法をご教授ください。 宜しくお願いいたします。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("B2:E2,G2:J2")) Is Nothing Then Exit Sub If Target.Value = "" Then Exit Sub x = Target.Value With Application .ScreenUpdating = False .EnableEvents = False .Undo 'Range("B2").Value = x + Z Z = Target.Offset(1, 0).Value y = Target.Value Target.Value = x + y .EnableEvents = True .ScreenUpdating = True End With Target.Offset(1, 0).Value = x + Z End Sub
- ベストアンサー
- Excel(エクセル)
- エクセルVBAについて
エクセルVBAについて 下にある、1行目に入力された数値の、選択したセルの数値を、B5セルに表示させるマクロなのですが、1行目が結合していると、うまくB5セルに表示できません。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count > 1 Then Exit Sub '●複数セル選択は無視 If Target.Row <> 1 Then Exit Sub '●1行目以外の選択は無視 If Target.Column > 6 Then Exit Sub '●F列目以降の選択は無視 If Target.Value = "" Then Exit Sub '●選択セルが未入力なら無視 Range("B5").Value = Target.Value End Sub このマクロで、結合しているセルをB5に表示させることはできますでしょうか? 1行目で選択するセルは、すべて2つのセルが結合しています。 よろしくお願いいたします。
- ベストアンサー
- その他MS Office製品
- セルの内容をテキストボックスに表示する
こんにちは。今月からVBAを少しずつ勉強し始めている初心者です。 VBAでA列のセルをダブルクリックすると、そのセルにチェックが入り、 ユーザーフォームを起動させる。といったコードを記述しました。 チェックが入る→フォームが起動までは良いのですが、入力済みのセルをWクリックした時にフォームのテキストボックスににセルの内容を表示させようとしているのですがうまくいきません。不具合の内容は、フォームに表示されるデータが、前回Wクリックした行のデータが表示されます。例えば、 1回目 ID50を選択→表示されない。 2回目 ID70を選択→ID50が表示される。 3回目 ID90を選択→ID70が表示される。といった具合です。 コードは下記です。Targetが前回を参照しているのだと思って調べてみたのですがよく分かりません。すみませんがご教示お願いします。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim lngTop As Long, lngLeft As Long, strTitle As String Const RangeName As String = "領収書" If Not Intersect(Range(RangeName), Target) Is Nothing Then Cancel = True If Target = "レ" Then Target = "" Target.Offset(0, 9).ClearContents Else Target = "レ" End If End If If Target.Count <> 1 Then Exit Sub If Target.Column <> 1 Then Exit Sub If Target <> "レ" Then Exit Sub 入力F.Show With Worksheets("送付名簿") 入力F.TextBox1.Value = Target.Offset(0, 1).Value 入力F.TextBox3.Value = Target.Offset(0, 2).Value 入力F.TextBox4.Value = Target.Offset(0, 3).Value 入力F.TextBox5.Value = Target.Offset(0, 5).Value 入力F.TextBox6.Value = Target.Offset(0, 4).Value 入力F.TextBox7.Value = Target.Offset(0, 6).Value 入力F.TextBox10.Value = Target.Offset(0, 7).Value 入力F.TextBox9.Value = Target.Offset(0, 8).Value End With End Sub
- ベストアンサー
- オフィス系ソフト
- マクロによる日時の表示
こちらのページでお世話になり 以下のようなプログラムを使って 特定の行に入力があった場合となりのセルに入力時間が表示されるようにしたのですが、 通常は例としてA1に入力があった場合B1に入力時間が表示されるといった具合だったのですが、わけあってA1~A3を結合しなければならなくなってしまい、入力時間をB1~B3(同じく結合したセル)に表示したいのです。 同じマクロのままやってみたところ一応入力時間は表示されるのですが、A1~A3に入力したデータを消したときにエラーが出てデバックしますか?といった内容の表示が出てしまいます。 どこを変更するとエラーが出なくなるのでしょうか? ご存知のかたがいらっしゃいましたらどうぞご教授願います。よろしくお願いします。 Private Sub Worksheet_Change(ByVal Target As Range) ' 1行目のセルならマクロ終了 If Target.Row = 1 Then Exit Sub ' A列かC列かE列なら If Target.Column = 2 Or Target.Column = 4 Or Target.Column = 6 Or Target.Column = 8 Or Target.Column = 10 Or Target.Column = 12 Or Target.Column = 15 Then ' 内容がブランクなら隣のセルをブランクにする If Target.Value = "" Then Target.Offset(0, 1).Value = "" Else Target.Offset(0, 1).Value = Format(Date + Time, "yyyy/mm/dd hh:mm:ss") End If End If End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルコードについて
エクセルコードについて Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row >= 1 And Target.Row <= 10 And Target.Column >= 1 And Target.Column <= 10 Then If Target.Value = "○" Then Target.Value = "" Else Target.Value = "○" End If Cancel = True End If End Sub ではセルA1~J10ですが、これをA1~A10などに変更するのにはどのようにすればよろしいでしょうか。
- 締切済み
- その他(ビジネス・キャリア)
- (Excel 2003) 稀にマクロが期待通りに動作しません
みなさん、こんにちは。 下記のコードは姓名のふりがなを表示するマクロですが、 稀にふりがなが漢字のまま表示されてしまう場合があります。 考えられる原因をご存知ありませんか? Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 8 And Target.Column <> 9 Then Exit Sub Target.Phonetics.CharacterType = xlHiragana If Target.Offset(, 2).Text = "" Then Target.Offset(, 2) = Target.Phonetic.Text End Sub よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- マクロでの条件判断について
A行に何かデータを入力した場合、同じ列のとなりの行のセルに入力時間を残したいと思い、 例 A1:あ B1:2006/5/9/16:00 A2:い B2:2006/5/10/18:00 以下のマクロを教えて頂いたのですが、 Private Sub Worksheet_Change(ByVal Target As Range) '///A列のセル以外ならマクロ終了/// If Target.Column <> 1 Then Exit Sub '///1行目のセルならマクロ終了/// If Target.Row = 1 Then Exit Sub '///内容がブランクならB列のセルをブランクにする。/// If Target.Value = "" Then Target.Offset(0, 1).Value = "" Else Target.Offset(0, 1).Value = Format(Date + Time, "yyyy/mm/dd hh:mm:ss") End If End Sub A列以外にもC列に入力した値の入力時間をD列にE列に入力した値の入力時間をF列にと、全部で6箇所値を入力したとなりのセルに入力時間が出るようにしたかったのですが、 '///A列のセル以外ならマクロ終了/// If Target.Column <> 1 Then Exit Sub の部分を '///A,C列のセル以外ならマクロ終了/// If Target.Column <> 1 Or Target.Column <> 3 Then Exit Sub のように変更してまずはA列とC列に値を入れて挑戦したのですが、時間が表示されなくこまっておりました。 解決方法をご存知のかたがいらっしゃいましたら、ぜひよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- メッセージボックスを表示させるエクセルマクロ
こんにちは。マクロ初心者です。 エクセル(Excel2003)でメッセージボックスを 表示させるマクロが思うようにいかず困っています。 B列に「○○会社」と入力されれば、 「取引先です。」 とメッセージボックスを表示させたいと思い、 次のとおりマクロを作成しました。 -------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target Like "*会社" Then MsgBox "取引先です。" End If End Sub -------------------------------- しかし、コピーなどで複数のセルを貼り付ける(入力)行為をすると、 「実行エラー'13': 型が一致しません」と出てしまいます。 Worksheet_Change(ByVal Target As Range)を使っているので、 -------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Column = 2 And Target Like "*会社" Then MsgBox "取引先です。" End If End Sub -------------------------------- と、「If Target.Count > 1 Then Exit Sub 」を入れれば、 メッセージは出なくなるのですが、 これだと、A列セルに、コピー&ペーストで複数セルを貼り付けた場合、 「○○会社」があっても、マクロが効いてきません。 複数セルの貼り付けにも対応させるには、 どのようにすればよろしいでしょうか? 基本的なところが理解できていないのだと自覚しておりますが、 どうかご教授願います。 長々とわかりづらい文章ですみません。よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
補足
コピーして使用したのですが、 エラーを起こしてしまいます。。何故でしょうか?? 他のコードと一緒に使用しているからなのでしょう??