Excel VBAのコードで転記時に¥マークが二つ表示される問題の解決方法

このQ&Aのポイント
  • Excel VBAのコードで転記時に¥マークが二つ表示される問題が発生しています。具体的には、2回目以降の入力で最終行の1行次の行を選択する部分で、テキストボックスの内容に「¥」を追加する処理が含まれるため、転記時に¥マークが二つ表示されてしまいます。
  • 解決方法としては、上記のコードの特定の部分を修正する必要があります。具体的には、テキストボックスの内容に「¥」を追加する処理を削除することで、テキストのみの内容で転記することができます。
  • 間違っている部分は、2回目以降の入力で最終行の1行次の行を選択する部分で、「¥」を追加する処理が重複していることです。これが原因で転記時に¥マークが二つ表示されてしまいます。処理の重複を避けるために、追加する処理を削除する必要があります。
回答を見る
  • ベストアンサー

¥マークがダブります。

Private Sub CommandButton4_Click() Dim varRag As Variant Dim myArray As Integer varRag = Array(TextBox1, TextBox2) If TextBox1 <> Empty Then '初めて入力される場合は、最初の行を選択します。 If Range("A16") = Empty Then Range("A16").Select TextBox1 = TextBox1.Value For myArray = 0 To 1 With Selection .Offset(, myArray) = varRag(myArray) End With Next myArray Else '2回目以降の入力であれば最終行の1行次の行を選択します。 Range("A65536").End(xlUp).Offset(1).Select For myArray = 0 To 1 With Selection TextBox1 = TextBox1.Value TextBox2 = "¥" & TextBox2.Value .Offset(, myArray) = varRag(myArray) End With Next myArray End If 'テキストボックスをすべて初期化します。 TextBox1 = "" TextBox2 = "" TextBox1.SetFocus Else 'テキストボックスに名前を入力しないで登録を押した時に出すエラーメッ セージです。 MsgBox "科目を入力して下さい。" End If End Sub ********************************************************************* 上記のコードですが、ワークシートに転記すると、¥マークが二つ表示されま す。 '2回目以降の入力であれば最終行の1行次の行を選択します。 Range("A65536").End(xlUp).Offset(1).Select For myArray = 0 To 1 With Selection TextBox1 = TextBox1.Value TextBox2 = "¥" & TextBox2.Value            ↑         ↑ 上記部分を消すと、テキストのみの内容で、¥マークは表示されません。どこ が間違っているのでしょうか。  

  • m_boy
  • お礼率15% (22/140)

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

For myArray = 0 To 1   With Selection     TextBox1 = TextBox1.Value     TextBox2 = "¥" & TextBox2.Value     .Offset(, myArray) = varRag(myArray)   End With Next myArray ここでループしていますから TextBox2 が 2000 の場合、最初のループで TextBox2 は "¥2000" になり、次のループで "¥¥2000" になります。 そもそも、TextBox1 = TextBox1.Value の処理も何を意味しているのか不明です。TextBox1にTextBox1のValue値を代入しても意味が無いような、、、 また、「¥」を付けて文字列化してしまっては、その後の計算に差し支えるような気がします。 少し書き換えましたのでご参考に。 Private Sub CommandButton4_Click() Dim r As Range With ActiveSheet   If TextBox1 = Empty Then     'テキストボックス1に名前を入力しないで登録を押した時に出すエラーメッセージです。     MsgBox "Text1は科目を入力して下さい。", vbCritical, "エラー"     Exit Sub   End If      If Not IsNumeric(TextBox2) Then     'テキストボックス2に数値を入力しないで登録を押した時に出すエラーメッセージです。     MsgBox "Text2は数値を入力して下さい。", vbCritical, "エラー"     Exit Sub   End If     '初めて入力される場合は、最初の行を選択します。   If .Range("A16") = Empty Then     .Range("A16").Value = TextBox1.Value     .Range("A16").Offset(0, 1).Value = TextBox2.Value     .Range("A16").Offset(0, 1).NumberFormatLocal = "\#,##0;[赤]\-#,##0"   Else     '2回目以降の入力であれば最終行の1行次の行を選択します。     Set r = .Range("A65536").End(xlUp).Offset(1)     r.Value = TextBox1.Value     r.Offset(0, 1).Value = TextBox2.Value     r.Offset(0, 1).NumberFormatLocal = "\#,##0;[赤]\-#,##0"   End If   'テキストボックスをすべて初期化します。   TextBox1 = ""   TextBox2 = ""   TextBox1.SetFocus    End With End Sub

m_boy
質問者

お礼

とても参考になりました。有難うございました。

関連するQ&A

  • エクセルマクロについて

    最終行の1つ下の行に100000と入力したいですが Range("b65536").Select Selection.End(xlUp).Select ActiveCell.Offset(0, 1).Value = 100000 としてもうまく行きません Selection.End(xlUp).Select この部分だけで なんとかなるのでしょうか よろしくお願い致します

  • ユーザーフォームでの登録&編集

     ユーザーフォームのリストボックス(RowSource,P6:A26)で選択し14個のテキストボックスで編集しコマンドボタンでSheet(P6:AC26)にコピペしていますが、下記のコードだと無制限に登録されてしまいます。Sheetの範囲内で登録&編集のコードの書き方がありましたらご教示賜りたく存じます。(番号は自動入力でなくてもいいです。) Windows7・SP1 Office2010 Private Sub CommandButton2_Click() Dim varRag As Variant Dim myArray As Integer Dim i As Long varRag = Array(txtID, txtTextBox2, txtTextBox3, txtTextBox4, txtTextBox5, txtTextBox6, txtTextBox7, txtTextBox8, txtTextBox9, txtTextBox10, txtTextBox11, txtTextBox12, txtTextBox13, txtTextBox14) If TextBox3.Text = "" Then MsgBox "登録すべき内容がありません!", vbExclamation, "確認" Exit Sub End If Application.ScreenUpdating = False Application.Calculation = xlCalculationManual If ListBox1.ListIndex = -1 Then 'リストが選択していなかったら、 Cells(Rows.Count, 16).End(xlUp).Offset(1).Select For myArray = 0 To 9 With Selection txtID = .Row - 5 .Offset(, myArray) = varRag(myArray) End With Next myArray Else i = ListBox1.ListIndex + 6 Range("P" & i).Value = i - 5 Range("Q" & i).Value = TextBox2.Text Range("R" & i).Value = TextBox3.Text Range("S" & i).Value = TextBox4.Text Range("T" & i).Value = TextBox5.Text Range("U" & i).Value = TextBox6.Text Range("V" & i).Value = TextBox7.Text Range("W" & i).Value = TextBox8.Text Range("X" & i).Value = TextBox9.Text Range("Y" & i).Value = TextBox10.Text Range("Z" & i).Value = TextBox11.Text Range("AA" & i).Value = TextBox12.Text Range("AB" & i).Value = TextBox13.Text Range("AC" & i).Value = TextBox14.Text End If 'データをクリア ListBox1.ListIndex = -1 ID.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" TextBox7.Text = "" TextBox8.Text = "" TextBox9.Text = "" TextBox10.Text = "" TextBox11.Text = "" TextBox12.Text = "" TextBox13.Text = "" TextBox14.Text = "" Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub Private Sub ListBox1_Change() Dim targetRow As Integer With ListBox1 targetRow = .ListIndex ID.Text = .List(targetRow, 0) TextBox2.Text = .List(targetRow, 1) TextBox3.Text = .List(targetRow, 2) TextBox4.Text = .List(targetRow, 3) TextBox5.Text = .List(targetRow, 4) TextBox6.Text = .List(targetRow, 5) TextBox7.Text = .List(targetRow, 6) TextBox8.Text = .List(targetRow, 7) TextBox9.Text = .List(targetRow, 8) TextBox10.Text = .List(targetRow, 9) TextBox11.Text = .List(targetRow, 10) TextBox12.Text = .List(targetRow, 11) TextBox13.Text = .List(targetRow, 12) TextBox14.Text = .List(targetRow, 13) End With End Sub

  • エクセル VBAのチェックボックスについて

    お読みくださり、ありがとうございます。 エクセル初心者でございます。 エクセルのマクロなのですが、 お詳しい方、是非教えて欲しいです!汗 調子に乗って入力フォームなるものを作りました。 入力フォームの中にて、チェックボックスで「ある」「なし」の項目を入れてみたのですが、チェックしていないのに、値が入る現象が起きています汗 以下、素人が書いたコードを恥を承知で記載させていただきます。 Private Sub CheckBox1_Click() If CheckBox1.Value = True Then OK = "○" End If End Sub Private Sub CheckBox2_Click() If CheckBox2.Value = True Then NO = "×" End If End Sub Private Sub UserForm_Click() End Sub '以下のコードは、登録ボタンがクリックされたときの処理! Private Sub 登録ボタン_Click() If TextBox1.Text = "" Then MsgBox "グッズ名を入力してください。" Exit Sub End If If TextBox2.Text = "" Then MsgBox "アプローチ先を入力してください。" Exit Sub End If With Worksheets("協賛グッズ") With Cells(Rows.Count, 2).End(xlUp) .Offset(1, 0).Value = TextBox1.Text .Offset(1, 1).Value = mori .Offset(1, 2).Value = mori2 .Offset(1, 3).Value = TextBox2.Text .Offset(1, 5).Value = TextBox3.Text .Offset(1, 6).Value = TextBox4.Text .Offset(1, 7).Value = TextBox5.Text .Offset(1, 8).Value = TextBox6.Text End With End With TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" TextBox6.Text = "" CheckBox1.Value = False CheckBox2.Value = False End Sub 以上です。 おかしなところ満載かと思いますが、 チェックを入れた項目だけ値を入れたいと考えております。 おわかりになるかたおりましたら何卒お助けください汗 よろしくお願いいたします。

  • 入力時エラーメッセージの出し方

    http://oshiete1.goo.ne.jp/qa3745129.htmlを参考に 下記の構文を作りましたが、エラーメッセージが出せなく困っています。 フォームで入力を行う際に、該当ボックスで車番一覧にデータの無いものに関してエラーメッセージを出したいと考えています。 修正箇所に関してご指摘いただければと思います。 よろしくお願いします。 Private Sub CommandButton1_Click() Dim check As Long '重複の有無(=0:重複せず,>0:重複) With Cells(Rows.Count, 1).End(xlUp).Offset(1) .Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox3.Text .Offset(0, 4).Value = TextBox4.Text On Error Resume Next check = 0 check = WorksheetFunction.Match(CInt(TextBox2.Text), Range("車番一覧", Columns(1))) On Error GoTo 0 If check = 0 Then MsgBox "その車番は登録されていません!", vbExclamation, "入力エラー" TextBox2.SetFocus Exit Sub End If Exit Sub End With TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" If TextBox1.Text = "" Then TextBox1.SetFocus End If Range("A1").Sort Key1:=Range("A1"), order1:=xlAscending, Key2:=Range("A1"), order2:=xlAscending, Header:=xlGuess End Sub

  • エクセルで、テキストボックスへ入力した内容を、別シートへ一覧表にしたいです

    Sheet1には、テキストボックス3つ(txtName, txtAdr, txttel)、 日付入力 用にDTPicker1、あと登録ボタンを作りました。 これに入力しては、登録ボタンを押下し、別シートに一覧表が出来るようにし たいです。 ネットで色々検索して、下のように、同じシートに一覧表が出来るまではうま くいったのですが、別シートに一覧表を作成する方法がわからないので、教え て下さいm(_ _)m 宜しくお願いします。 Private Sub cmdtouroku_Click() Dim varRag As Variant Dim myArray As Integer varRag = Array(txtName, txtAdr, txtTel, DTPicker1) Range("A65536").End(xlUp).Offset(1).Select For myArray = 0 To 3 With Selection .Offset(, myArray) = varRag(myArray) End With Next myArray End Sub

  • エクセル マクロ 保護解除とテキストボックス追加

    エクセル マクロ 保護解除とテキストボックス追加 作業工程表へ日付けを入力すると■でべた塗りされ、 ボタンで行挿入とテキストボックスが追加(追加後にテキスト入力と移動可能)仕様を作りたいです。 式保護のためD2~R7はロックさせてますが、次の手順で操作するとセルの保護が解除されてしまうため、解除されないようにしたいです。 (1)ファイルを開く、マクロ有効 (2)テキスト追加ボタンで選択したセルの位置へテキストボックス追加(入力、移動可能)  この時、保護解除されていない。 (3)行挿入ボタンで行挿入、D2~R8保護解除される。 Sub テキストボックス() ActiveSheet.Shapes.AddTextbox msoTextOrientationHorizontal, _ Selection.Left + 3, Selection.Top + Selection.Height - 11, _ 50#, 12# End Sub Sub 行挿入() With ActiveSheet .Protect Password:="123", DrawingObjects:=False, UserInterfaceonly:=True Range("A65536").End(xlUp).Offset(0).Select ActiveCell.Resize(1, 23).Select Selection.Copy Selection.Insert Shift:=xlDown Range("A65536").End(xlUp).Offset(0).Select ActiveCell.Resize(1, 3).Select Selection.ClearContents End With End Sub

  • エクセルマクロが重い

    こんにちは。 ご教授くださいませ。 すでに先方が作っているエクセルのシートがありまして、 そのシートの表組み規則にのっとって入力するユーザーフォーム を私のほうで作ったのですが、重いです。 selectの多用はだめ!というところまでは調べたのですが じゃあどうしたらいいかわかりません。 ■ '--------------------8時から If OptionButton1.Value = True Then ActiveCell.Offset(3, -1).Range("A1").Select ActiveCell = UserForm3.TextBox1.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox2.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox3.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox4.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox5.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox6.Value ActiveCell.Offset(3, 0).Range("A1").Select ActiveCell = UserForm3.TextBox12.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox11.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox10.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox9.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox8.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox7.Value ActiveCell.Offset(3, 0).Range("A1").Select ActiveCell = UserForm3.TextBox13.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox14.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox15.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox16.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox17.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox18.Value ActiveCell.Offset(3, 0).Range("A1").Select ActiveCell = UserForm3.TextBox24.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox23.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox22.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox21.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox20.Value ActiveCell.Offset(0, -1).Range("A1").Select ActiveCell = UserForm3.TextBox19.Value ActiveCell.Offset(3, 0).Range("A1").Select ActiveCell = UserForm3.TextBox25.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox26.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox27.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox28.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox29.Value ActiveCell.Offset(0, 1).Range("A1").Select ActiveCell = UserForm3.TextBox30.Value 'ActiveWorkbook.Save MsgBox "入力しました。", vbInformation, "確認" End If '--------------------8時から(END ■ 基本の流れは... 最初にオプションボタン3つのどれか1個の 選択を求め、その条件に応じて 始基点となるセルが変わります。 で、あとは与えられた表組みを縦や横に 移動しながら、対応するテキストボックスの 値を入れる、という 我ながら頭の悪い方法で^^; .selectではない、スマートな方法があればと思います。 ぜひお知恵を!

  • マクロの簡素化

    下記マクロです。 Range("AE6:AE1005").Select Selection.ClearContents Selection.Interior.ColorIndex = xlNone If Range("AD6").Value > 5 Then Range("AE6") = "*" Range("AE6").Select With Selection.Interior .ColorIndex = 3 End With Else End If If Range("AD7").Value > 5 Then Range("AE7") = "*" Range("AE7").Select With Selection.Interior .ColorIndex = 3 End With Else End If If Range("AD8").Value > 5 Then Range("AE8") = "*" Range("AE8").Select With Selection.Interior .ColorIndex = 3 End With Else End If 中略(セルを一個づつ指定しています) If Range("AD1004").Value > 5 Then Range("AE1004") = "*" Range("AE1004").Select With Selection.Interior .ColorIndex = 3 End With End If If Range("AD1005").Value > 5 Then Range("AE1005") = "*" Range("AE1005").Select With Selection.Interior .ColorIndex = 3 End With Else End If Range("AE3").Select 有るセルを参照しその値が5以上だったら別のセルに*マークとセルに色を付けるマクロですが、一個づつセル指定をしていますが、何とか短く出来ないでしょうか? お分かりになる方宜しくお願い致します。

  • 処理速度を速くする方法教えてください。

    Private Sub CommandButton1_Click() Dim irow As Long Dim Celldata(1 To 6) As Double Dim ekimen(1 To 6) As String '高さ読込み If TextBox8.Value = "" Then MsgBox ("No.を入力") End End If If TextBox9.Value = "" Then MsgBox ("温度を入力") End End If If TextBox10.Value = "" Then MsgBox ("係数を入力") End End If Celldata(1) = TextBox1.Value + (TextBox7.Value - TextBox9.Value) * TextBox10.Value Celldata(2) = TextBox2.Value + (TextBox7.Value - TextBox9.Value) * TextBox10.Value Celldata(3) = TextBox3.Value + (TextBox7.Value - TextBox9.Value) * TextBox10.Value Celldata(4) = TextBox4.Value + (TextBox7.Value - TextBox9.Value) * TextBox10.Value Celldata(5) = TextBox5.Value + (TextBox7.Value - TextBox9.Value) * TextBox10.Value Celldata(6) = TextBox6.Value + (TextBox7.Value - TextBox9.Value) * TextBox10.Value '入力と修正 Dim i As Long '最終行から試験Noが一致するものを探す For i = 65535 To 6 Step -1 If CStr(Cells(i, 1)) = Trim(TextBox8.Value) Then Set myrange = Sheets("データ").Cells(i - 1, 1) '記入セルがoffset(1,x)になっているため、i-1にしています。 Exit For End If Next i 'Noが一致しない場合、最終行を記入セルに設定する。 If i = 5 Then Set myrange = Sheets("データ").Range("A65536").End(xlUp) End If 'ワークシートへの転記 With myrange .Offset(1, 0).Value = TextBox8.Value '----No. .Offset(1, 1).Value = Celldata(1) '----1計測 .Offset(1, 2).Value = Celldata(2) '----2計測 .Offset(1, 3).Value = Celldata(3) '----3ル計測 .Offset(1, 4).Value = Celldata(4) '----4計測 .Offset(1, 5).Value = Celldata(5) '----5計測 .Offset(1, 6).Value = Celldata(6) '----6計測 .Offset(1, 13).Value = TextBox1.Value '----1追加 .Offset(1, 14).Value = TextBox2.Value '----2追加 .Offset(1, 15).Value = TextBox3.Value '----3追加 .Offset(1, 16).Value = TextBox4.Value '----4追加 .Offset(1, 17).Value = TextBox5.Value '----5追加 .Offset(1, 18).Value = TextBox6.Value '----6追加 .Offset(1, 19).Value = TextBox7.Value '---温度 .Offset(1, 20).Value = TextBox11.Value '----1高さ .Offset(1, 21).Value = TextBox12.Value '----2高さ .Offset(1, 22).Value = TextBox13.Value '----3高さ .Offset(1, 23).Value = TextBox14.Value '----4高さ .Offset(1, 24).Value = TextBox15.Value '----5高さ .Offset(1, 25).Value = TextBox16.Value '----6高さ '入力ボックスのクリア TextBox1.Value = "" '----1セル TextBox2.Value = "" '----2セル TextBox3.Value = "" '----3セル TextBox4.Value = "" '----4セル TextBox5.Value = "" '----5セル TextBox6.Value = "" '----6セル TextBox7.Value = "" '---温度 TextBox11.Value = "" '----1セル TextBox12.Value = "" '----2セル TextBox13.Value = "" '----3セル TextBox14.Value = "" '----4セル TextBox15.Value = "" '----5セル TextBox16.Value = "" '----6セル End With 'lblComment.Caption = "ワークシートに転記しました!" End Sub Private Sub CommandButton2_Click() Dim i As Long '入力チェック If TextBox8.Value = "" Then MsgBox ("No.を入力") End End If If TextBox9.Value = "" Then MsgBox ("温度を入力") End End If If TextBox10.Value = "" Then MsgBox ("係数を入力") End End If For i = 65535 To 6 Step -1 If CStr(Cells(i, 1)) = Trim(TextBox8.Value) Then Set myrange = Sheets("データ").Cells(i - 1, 1) '記入セルがoffset(1,x)になっているため、i-1にしています。 Exit For End If Next i '受付No.がない場合、終了します。 If i = 5 Then MsgBox ("No.が見つかりません") End End If '入力の処理と逆の処理を行います。 With myrange TextBox1.Value = .Offset(1, 13).Value '---1計測 TextBox2.Value = .Offset(1, 14).Value '---2計測 TextBox3.Value = .Offset(1, 15).Value '---3計測 TextBox4.Value = .Offset(1, 16).Value '---4計測 TextBox5.Value = .Offset(1, 17).Value '---5計測 TextBox6.Value = .Offset(1, 18).Value '---6計測 TextBox7.Value = .Offset(1, 19).Value '---温度 TextBox11.Value = .Offset(1, 20).Value '---1高さ TextBox12.Value = .Offset(1, 21).Value '---2高さ TextBox13.Value = .Offset(1, 22).Value '---3高さ TextBox14.Value = .Offset(1, 23).Value '---4高さ TextBox15.Value = .Offset(1, 24).Value '---5高さ TextBox16.Value = .Offset(1, 25).Value '---6高さ End With End Sub

  • 空白セルと0値を識別させたい。(VBA)

    すみません、誰か教えていただけますか。 シートの53、54、55行目にそれぞれ値入っています。 それを3行目にビジュアル的に表現させています。 55行目はセルの色で、53行目は数値があり同じ値が 続く部分の合計を出しています。 しかし、下記の記述ですと数値が0(変数D=0)の時に うまくいきません。空白セルと認識されてしまうと思います。 何か、良い方法があれば教えて頂けませんでしょうか。 宜しくお願いします。 Sub 表示() Dim a As Long Dim c As Long Dim D As Long Dim e As String Dim f As String c = 3 For a = 3 To 64 With Worksheets("Sheet1") If .Cells(53, a) <> .Cells(53, a + 1) Then .Range(.Cells(53, c), .Cells(53, a)).Select D = WorksheetFunction.Sum(Selection) e = D f = Selection(1).Offset(1, 0).Value G = Selection(1).Offset(2, 0).Value If D <> 0 Then Selection(1).Offset(-50, 0).Value = f + "//" + e .Range(.Cells(53, c), .Cells(53, a)).Offset(-50, 0).Select Selection.Interior.ColorIndex = G End If If Selection(1).Value = "" Then .Range(.Cells(53, c), .Cells(53, a)).Offset(-50, 0).Select Selection.ClearContents Selection.Interior.ColorIndex = xlNone End If c = a + 1 End If End With Next End Sub

専門家に質問してみよう