• ベストアンサー

セルに\を表示

セルに2列目に金額、3列目に数量を記入し、4列目に金額かける数量で合計金額、最後に総合計を計算しておりますが、\マークの表示がDELETEでセル内が非表示になります。 セルに0を表示すると\0と表示はできるようにしてありますが? 自分なりに考えて作成しましたが、実行できません。 セル結合以外の方法でVBをりようしてクリックすると\表示するコードをご教授お願いします。 sub en() dim enkode as integre CELLS(2to6) if cells value<>""then 記入なし else cells.value=0 end if end sub 実行できませんので、宜しくお願いします。

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

  • ベストアンサー
  • genshoku
  • ベストアンサー率75% (34/45)
回答No.3

#2で補足をお願いしたものです。 指定範囲をループして実行するにはfor~nextを使います。 (他にもwhile~wend、do~loopなど、いろいろな手段があります) あらかじめ、セルの書式設定で\表示がされるようにされており、コードが実行されると、B2(座標だと(2,2))からF3(座標だと(3,6))の範囲でブランクセルにゼロをセットするコードは以下のようになります。 Sub 円表示() Dim I , J For I=2 to 6 For J=2 to 3 If cells(J,I).value = "" Then cells(J,I).value = 0 NEXT J NEXT I End Sub 実行検証はしてませんが、多分大丈夫だと思います。

gorugo48
質問者

お礼

ありがとうございました。 成功いたしました。 また学習しますので、宜しくお願いします。

その他の回答 (2)

  • genshoku
  • ベストアンサー率75% (34/45)
回答No.2

 気に触ったら申し訳ありません。  自分はEXCELやVB系プログラムにそれなりの自信がある者ですが、質問の中身や意図が全く理解できないです。  お手数ですが、以下の点を補足いただけると助かります。 1.セルという言葉が出てきますので表計算ソフトということは想像がつきますが、利用アプリケーションはMicrosoftExcelですよね? 2.プログラミング言語はVBAですよね?(記載されているコードは#1の方が指摘されているとおり、VBAの基本構文とは全く異なります) 3.「\マークの表示がDELETEでセル内が非表示になります。セルに0を表示すると\0と表示はできるようにしてありますが?」について。 どの範囲について、どうした状態になったときに、VB(?)でどうしたいのでしょう?  範囲は恐らく2列から6列目ということは推測が付きますが、それぞれのセルの状態がどういうときにどうしたいのかが分かりません。 4.「クリックすると\表示するコード」について。  どこをクリックすると実行されるコードにしたいのでしょう?  該当のセル、例えばB6をクリックするとB6の中だけで実行されるコードにしたいのか、それともどこかにボタンをつけて、それをクリックすると実行されるコードにしたいのか?  もし、これが本当にVBに関する質問なのでしたら、まずは基本構文等の基礎から学習されることをオススメします。

gorugo48
質問者

補足

説明不足みたいで、申し訳有りません。 まだ、VBAの説明本を読んだだけですので、 全くわかりません。 1.ソフトはExcelです。 2.プログラム言語はVBAです。 3.セル2行目のB~Fまでに価格を入力、3行目のB~Fに個数を入力しました。 セルにはユーザー設定で数字を入力すると\が表示されますが、セルには見えませんので、セルに\を入力しました。 Deleteを入力しますと消えますので、その指定範囲範囲のみ、コードを作って、それをマクロに登録したいと思います。 コマンドボタンを作成し、そのボタンを押すと、空白セルに\が表示されるようにしたいのですが、よくわかりませんので、コード表示お願いします。 Excel VBAの教本で学んでいるのですが、なかなか難しくて、進みません。 宜しくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

質問のコードはむちゃくちゃ。 >\マークの表示がDELETEでセル内が非表示になります。 とはどういう意味ですか A1セルの書式設定を通貨にしておきます。いま¥123と見えています。DELETEでデータを消しました。¥も含め消えました。 しかし金額数字を入れると¥12とかになりました。これとは質問で言っていることは違うのでしょうか。このことそのものが質問者には都合が悪いのでしょうか。 ーー コードは integre CELLS(2to6) cells value などおかしい。 公の場に質問するのだから、エラーが出るにしろ、VBE画面に張り付け文法エラーぐらいない状態にして、実行して見て、そのコードを質問に貼り付けること。 何万の質問の読者のことも考えること。

gorugo48
質問者

補足

再度記入致します。まだ不慣れなので。 Excel VBAを使用して作成を考えております。   B c d e F    2   \200   760  \200   \300   \210 エン 3   6個   3個  5個   2個   2個 罫線は記入できませんでした。 エンはボタンを作成し、マクロに対応しております。 たとえば2dをDeleteすると\が消えます。0を表示すると、\を表示しますので、空白の場合は\を表示するコードを作りたいと考えておりました。 下記が作成したコードですが、b2からf2まで順番にループして\マークを表示する方法がわかりません。 Sub 円表示() Dim en en = ActiveCell.Value If en = "" Then ActiveCell.Value = "0" End If End Sub また、コマンドを作成せずにA2のセルをクリックすると\マークを表示する方法も可能でしょうか? ご教授宜しくお願いします。

関連するQ&A

  • 二つの行のうち、どちらかが、セルの値がゼロのとき、その列を非表示にする

    二つの行のうち、どちらかが、セルの値がゼロのとき、その列を非表示にする windows7 excelでマクロ作成中の初心者です。 以下のコードで27行目のセルの値が0のとき列を非表示にします。 Private Sub 列非表示_Click() Dim 列番号 As Long 'シートが保護されていたら保護を解除 Worksheets("最新明細").Activate If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 Then Cells(27, 列番号).EntireColumn.Hidden = True End If Next 列番号 ActiveSheet.Protect End Sub ------------------------------------------------- Private Sub 列表示_Click() Dim 列番号 As Long 'シートが保護されていたら保護を解除 Worksheets("最新明細").Activate If ActiveSheet.ProtectContents = True Then ActiveSheet.Unprotect End If For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 Then Cells(27, 列番号).EntireColumn.Hidden = False End If Next 列番号 ActiveSheet.Protect End Sub この27行と、もう一行の28行、どちらかの行が、0のときに列を非表示・表示したいのですが、出来ません。 試行錯誤してもできないのです。どうかよろしくおねがいします。 For 列番号 = 4 To 33 If Cells(27, 列番号).Value = 0 or Cells(28, 列番号).Value = 0 Then or( Cells(27, 列番号).EntireColumn.Hidden = True, Cells(27, 列番号).EntireColumn.Hidden = True) End If

  • セル値

    すみません エクセルVBA勉強中のものですが、セルA1とA2がブランクだったら、セルB1に”あ”を表示するという式を作ったのですがうまく動いてくれません ご指導のほどお願いします。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Cells(1, 1).Value <> "" & Cells(2, 1).Value <> "" Then Cells(1, 2).Value = "あ" End If End Sub

  • 非表示の列があるか取得したい。

    Sub Macro1() Columns("a").Hidden = True End Sub としたら、A列が非表示になりますよね。 そして、セル全体に非表示の列があるかどうかを取得したい場合はどうすればいいでしょう? Sub Macro2() If Cells.Hidden = True Then MsgBox "非表示の列があります" End If End Sub をすると、実行時エラー1004になります。 それに Cells.Hiddenの時点で、列だけじゃなくなってしまいます。 あと、最終列はファイルによってまちまちです。 Z列の時もあれば、EAの時もあります。 ご回答よろしくお願いします。

  • VBAエクセル空白セル0の入力

    C列が空白となるまで、F列・・・L列の空白セルに0を代入する。 という処理を行いたく以下コードで実行をして ファイル種類をCSVにて、保存した後名前の変更で拡張子をTXTにすると データ入力された列の以降がカンマの羅列が「,,,,,,,,(改行)」の繰り返しで表示されてしまいます。 (CSV保存の後、視覚的に空白部分を行選択して削除するとなくなります。) どうすれば、このカンマが表示されなくなるでしょうか。 うまく説明できてないですが、アドバイス御願いします。 Dim i As Long i = 3 Do Until Cells(i, 3).Value = "" If Cells(i, 6).Value = "" Then Cells(i, 6).Value = "0" End If If Cells(i, 7).Value = "" Then Cells(i, 7).Value = "0" End If If Cells(i, 8).Value = "" Then Cells(i, 8).Value = "0" End If If Cells(i, 9).Value = "" Then Cells(i, 9).Value = "0" End If If Cells(i, 10).Value = "" Then Cells(i, 10).Value = "0" End If If Cells(i, 11).Value = "" Then Cells(i, 11).Value = "0" End If If Cells(i, 12).Value = "" Then Cells(i, 12).Value = "0" End If i = i + 1 Loop

  • エクセル2007 参照セルの値が認識されない

    エクセル2007の環境で下記マクロを実行すると、 アクティブシートのセルA1に数字が入っている場合、Sheet1のセルA1に値を転記しても そのセルA1の値をVLOOKUP関数で参照できません。 マクロに問題があるためなのか何処に問題があるのか分からないので教えてください。 宜しくお願いいたします。 【sheet】は アクティブシートの3行目から1000行目までのA列のセルをクリックしたらセルA1に値を表示 その後、下記【モジュール】を使用し、 アクティブシートのセルA1が空白の場合、 A列の数値をSheet1のセルA1に転記し、アクティブシートのA列の数値が空白になるまで循環する。 Sheet1のセルA1の値をVLOOKUP関数で参照した内容を表示、印刷します。 ----------------------------------------------------------------- '【sheet】 Private Sub Worksheet_SelectionChange(ByVal Target As Range) With Target If .Count > 1 + IsEmpty(.Value) Then Exit Sub If Application.Intersect(.Cells, Range("A3:A1000")) Is Nothing Then Exit Sub ActiveSheet.Cells(1, 1).Value = .Value End With End Sub ----------------------------------------------------------------- '【モジュール】 Sub TEST() Dim myBtn As Integer Dim myMsg As String, myTitle As String Dim WS1 As Worksheet, WS2 As Worksheet Dim i As Long myMsg = "●●●" myTitle = "確 認" myBtn = MsgBox(myMsg, vbYesNo + vbExclamation, myTitle) If myBtn = vbYes Then Set WS1 = ActiveSheet Set WS2 = Sheet1 If WS1.Cells(1, 1).Value = "" Then With WS1 For i = 3 To 65536 If .Cells(i, 1).Value = "" Then Exit For WS2.Cells(1, 1).Value = .Cells(i, 1).Value WS2.Cells(1, 2).Value = ActiveSheet.Name 'WS2.PrintOut Copies:=1 Next i End With ElseIf WS1.Cells(1, 1).Value >= 1 Then WS2.Cells(1, 1).Value = WS1.Cells(1, 1).Value WS2.Cells(1, 2).Value = WS1.Name 'WS2.PrintOut Copies:=1 Else End If End If End Sub -----------------------------------------------------------------

  • 13行目のセルの値が0のとき、その列を非表示にする

    Windows7 Excel2007でマクロ作成中の初心者です。 13行目のセルの値が、0のときは、その列を非表示にするというマクロを作ろうとしましたが なかなか難しくておてあげです。探したら次のようなコードがでてきました。 ボタンを押すとK列の値を参照して「A」と表示されている行を隠し、「表示する」ボタンを押すと、 解除するという処理。 Option Explicit Private Sub Cmd隠す_Click()  Dim 行番号 As Long  '行を隠す  For 行番号 = 4 To 13   If Cells(行番号, 11).Value = "A" Then    Cells(行番号, 1).EntireRow.Hidden = True   End If  Next 行番号 End Sub Private Sub Cmd表示する_Click()  '表全体を再表示する  Cells.Select  Selection.EntireRow.Hidden = False  Selection.EntireColumn.Hidden = False  Cells(1, 1).Select End Sub このコードを利用して、13行目のセルの値が、0のときは、その列を非表示にするというコードにしたいのです。 よろしくおねがいします。

  • エクセルマクロで指定したセルの値を表示変更し転記

    エクセルマクロで指定したセルの値を表示変更して指定したセルに転記したい セルA列に書式が標準で 20101117と入っています。 これをB列にセルの値も表示も共に11/27としたいです。 (セルの値は2010/11/17でセルの表示は11/27ではまずいです。) A列にデーターがあるまで繰り返したいです。 行数は作業毎で常に違います。 以下の記述では出来ませんでした。 よろしくお願いします。 Sub 日付() 行 = 2 Do If Cells(行, 1).Value = "" Then Exit Do Cells(行, 2).Value = Mid(行, 1,5,2) &"/"& RIGHT(行, 1,2) 行 = 行 + 1 Loop End Sub

  • 上のセルのコピーのマクロについて

    下記コードで、B列(数値)の空白のセルにその上の値をコピーしているんですが、C列(日付)で行ったところ、できませんでした。 Integerが違うと思って変えたんですが、ほかにも関連して変えるところがありますか?? 宜しくお願いいたします。 Sub 上のセルコピー() Dim i As Integer For i = 1 To Range("B" & Rows.Count).End(xlUp).Row If Cells(i, 2).Value = "" Then Cells(i, 2).Value = Cells(i - 1, 2).Value End If Next i End Sub

  • セルの値が0はクリアするマクロ

    エクセル2003です。 ある集計表において 4行目のH列からAM列まで 数値データがあります。 最終行は常に変化します この表内にてセルの値が0のセルは セル内を空白にしたいです。 以下のマクロを作成しましたが If Cells(処理行, 8).Value = 0 Then Cells(処理行, 8).ClearContents をあと(処理行, 13)から(処理行,31) まで記述しなければなりません。 構文的にも処理的にも不利? と思うので、なにかいい方法を教えてください。 Sub 数字0クリア() '2012年2月3日節分 Dim 最終行 '最終列をG列で求めます 最終行 = Cells(Rows.Count, 7).End(xlUp).Row Application.ScreenUpdating = False For 処理行 = 4 To 最終行 If Cells(処理行, 8).Value = 0 Then Cells(処理行, 8).ClearContents End If If Cells(処理行, 9).Value = 0 Then Cells(処理行, 9).ClearContents End If If Cells(処理行, 10).Value = 0 Then Cells(処理行, 10).ClearContents End If If Cells(処理行, 11).Value = 0 Then Cells(処理行, 11).ClearContents End If If Cells(処理行, 12).Value = 0 Then Cells(処理行, 12).ClearContents End If If Cells(処理行, 13).Value = 0 Then Cells(処理行, 13).ClearContents End If Next 処理行 Application.ScreenUpdating = True MsgBox "終了しました" End Sub

  • 複数のセルでの方法

    現在下記のようなマクロを組んであるのですが、これだと5列目が「0」のときの実行マクロです。 '5列目(工数)が「0」のとき該当する行の高さを「0」にする。 For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 If Cells(i, 5).Value = "0" Then Rows(i).RowHeight = 0 End If Next 私はこれではなくて、5列目と7列目の同じ行にあるセルに「0」がはいっていたら行の高さを「0」にしたいのです。 そこで私は If Cells(i, 5).Value = "0" Then これを If Cells(i, 5).Value = "0" And Cells(i, 7).Value = "0" Then にしたところエラーが発生しました。 良い方法があればお教えください。 よろしくお願いします。

専門家に質問してみよう