電子書籍の厳選無料作品が豊富!

SHEET1にて、チェック式を作成。チェックした項目のみ記録ボタンでsheet2に記録させる物を作りました。しかし項目がありすぎてチェックしていない時は空白が目立ち使いづらいです。この様にしたいのですが出来ますか?
A  B  C ・・・・・・・・・L  N  M
使用 ○ 実施 空白が続く  機械 油田 油
この空白が出来ないよう、左に詰めるように記録したいのですが出来ますか?マクロの記述を教えてください。もし空白なら左に詰めて記録できるようにしたーいです。教えてください。

A 回答 (4件)

onlyromです。



>Next R
>End With
>End Sub
●>.Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value

>{End Sub,End Function または End Property 以降には、コメントが記述できます。}と表示され

●のところでそのエラーが出るのは当然のことです。
●の1行上が、End Sub になってますからそこでプログラムが終了になりますから、●以下にはコメントしか書けません。

当方が回答したコードには、●のコードはありませんよね。
●のコードは一体、何の為にあるのでしょうか。

回答したコードは先に質問者がお礼の欄に書いたコードの代わりですから、
質問者のコードは全てボツにして、当方のコードのみで実行してください。
 
    • good
    • 0
この回答へのお礼

ありがとうございました。何度もすいませんでした。実施しましたがA6以降の文字が全て白紙になってしまいました。自分の説明不足です。そこで良かったら、pop2003dayo@
でヤフーの@yahoo.co.jpを後ろにつけメールに返事を書いて欲しいです。なぜかと言いますと実際のエクセルを見て欲しいのです。本当に完成させたいと思っております。どうかお願いします。

お礼日時:2007/09/08 15:46

またまた登場、onlyromです。



まだ不明の点が多いのですが、お礼の蘭に提示されたコードのみに修正を加えてみました。


'---------------------------------------------
Sub 入力()

  Dim R As Long
  Dim Clm As Long

Dim LastRow As Long

With Worksheets("Sheet2")
 LastRow = .Range("A65536").End(xlUp).Offset(1, 0).Row
 .Range("A" & LastRow).Value = LastRow - 1

   Clm = 1

 For R = 6 To 21

  If (R >= 6 And R <= 10) Or R = 12 Or R = 13 _
    Or R = 15 Or R = 16 Or R = 19 Or R = 21 Then

    If Sheets("Sheet1").Cells(R, "A").Value <> "" Then
      Clm = Clm + 1
      .Cells(LastRow, Clm) = Sheets("Sheet1").Cells(R, "A").Value
    End If

  End If

 Next R

End With

End Sub
'-----------------------------------------------

お試しください。
 
    • good
    • 0
この回答へのお礼

早速のお返事ありがとうございます。実際に記述しました。しかし
下の(”A6”)に色が変わりエラー表示されます。内容は、{End Sub,End Function または End Property 以降には、コメントが記述できます。}と表示され、エラーの回避ができません。何が原因なのでしょうか?本当にすいません、教えてください。

::
Next R
End With
End Sub
.Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value

お礼日時:2007/09/08 14:04

>是非、教えてください。



頑張っている人にできる限りのことをしてあげたいとは思いますが、
いかんせん、情報不足ゆえ回答のしようがありません。

>sheet1に関してはチェックボックスの横にコンボボックスを作成しています。
>チェックが付いていたら、trueとしてコンボボックスに表示されたものを入力ボタンで、sheet2に記録させるようにしています。

Sheet1には、CheckBox、ComboBox、CommandButtonがそれぞれ一つしかないのですか?
そして、CheckBoxがOnの時、CommandButtonをクリックして、ComboBoxで選択されてる項目をSheet2に転記させると書いてありますが、

なら、質問の
>項目がありすぎてチェックしていない時は空白が目立ち使いづらい
>空白なら左に詰めて記録できるようにしたーいです

これは矛盾するのではありませんか?

なぜなら、

>チェックが付いていたら、trueとしてコンボボックスに表示されたものを入力ボタンで、sheet2に記録させるようにしています。

このように「チェックが付いていたら」即ち、「チェックがされていたら」、記録させるようにしているわけですから。

そこら辺りのことを実際に沿った形で、セルアドレスも含めもっと詳しく提示すべきだと考えます。
 
乗りかかった船ですので解決までお付き合いしませう。
 
    • good
    • 0
この回答へのお礼

ありがとうございます。本当に感謝しております。自分もマクロの勉強を始めたばっかりで非常に困っています。仕事で使いたいと思い勉強を始めました。最初はマクロは一つで対応していたのですが、やりたい事がいっぱいあったのでこの間みたいな、フォームで簡略化したかったのですがもう少し勉強してからしようと思っています。是非最後までお付き合いしてください。
Sheet1には、CheckBox、ComboBox、CommandButtonはいっぱいあります。下記が実際の記述です。チェックする項目は14個の内1個だけでいいのですが、あまりにも空白が多く困っています。だから、フォームを作って選択出来るように作りたかったのですが・・残念です。是非お願いします。
Sub 入力()
Dim LastRow As Long
With Worksheets("Sheet2")
LastRow = .Range("A65536").End(xlUp).Offset(1, 0).Row
.Range("A" & LastRow).Value = LastRow - 1


.Range("B" & LastRow).Value = Worksheets("Sheet1").Range("A6").Value
.Range("C" & LastRow).Value = Worksheets("Sheet1").Range("A7").Value
.Range("D" & LastRow).Value = Worksheets("Sheet1").Range("A8").Value
.Range("E" & LastRow).Value = Worksheets("Sheet1").Range("A9").Value
.Range("F" & LastRow).Value = Worksheets("Sheet1").Range("A10").Value
.Range("G" & LastRow).Value = Worksheets("Sheet1").Range("A12").Value
.Range("H" & LastRow).Value = Worksheets("Sheet1").Range("A13").Value
.Range("I" & LastRow).Value = Worksheets("Sheet1").Range("A15").Value
.Range("J" & LastRow).Value = Worksheets("Sheet1").Range("A16").Value
.Range("K" & LastRow).Value = Worksheets("Sheet1").Range("A19").Value
.Range("L" & LastRow).Value = Worksheets("Sheet1").Range("A21").Value

お礼日時:2007/09/08 11:31

チェック式、とはどんな式?????



せめてSheet1のレイアウトぐらいは提示しないと。。


それから、どうでもいいことですが、

http://oshiete1.goo.ne.jp/qa3315484.html

これは解決済み????
ひとつずつ解決した方がベターなのでは?
 
 
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。sheet1に関してはチェックボックスの横にコンボボックスを作成しています。チェックが付いていたら、trueとしてコンボボックスに表示されたものを入力ボタンで、sheet2に記録させるようにしています。
是非、教えてください。

お礼日時:2007/09/07 23:41

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