Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5005 / 13644 ツリー ←次へ | 前へ→

【53070】在庫管理できるシステムについて あみゅ吉 07/12/13(木) 20:09 質問[未読]
【53071】Re:在庫管理できるシステムについて neptune 07/12/13(木) 20:59 発言[未読]
【53076】Re:在庫管理できるシステムについて あみゅ吉 07/12/13(木) 22:22 質問[未読]
【53077】Re:在庫管理できるシステムについて かみちゃん 07/12/13(木) 22:28 発言[未読]
【53078】Re:在庫管理できるシステムについて あみゅ吉 07/12/13(木) 22:36 質問[未読]
【53079】Re:在庫管理できるシステムについて neptune 07/12/13(木) 22:55 発言[未読]
【53082】Re:在庫管理できるシステムについて あみゅ吉 07/12/13(木) 23:12 質問[未読]
【53083】Re:在庫管理できるシステムについて かみちゃん 07/12/13(木) 23:33 発言[未読]
【53086】Re:在庫管理できるシステムについて あみゅ吉 07/12/13(木) 23:55 質問[未読]
【53090】Re:在庫管理できるシステムについて かみちゃん 07/12/14(金) 9:25 発言[未読]
【53092】Re:在庫管理できるシステムについて [名前なし] 07/12/14(金) 9:53 発言[未読]
【53094】Re:在庫管理できるシステムについて かみちゃん 07/12/14(金) 12:43 発言[未読]
【53095】Re:在庫管理できるシステムについて ハチ 07/12/14(金) 13:05 発言[未読]
【53097】Re:在庫管理できるシステムについて neptune 07/12/14(金) 14:09 発言[未読]
【53145】Re:在庫管理できるシステムについて mitsu 07/12/17(月) 15:42 発言[未読]

【53070】在庫管理できるシステムについて
質問  あみゅ吉  - 07/12/13(木) 20:09 -

引用なし
パスワード
   はじめまして。
あみゅ吉と申します。

使用開始から終了までの日付を入力し、ボタンを押したら
グラフ(日付入りの横棒グラフ等)で出力されるマクロを
作りたいのですが、何から手をつけたらいいかわからず
お力をお借りできないかと思い投稿させていただきました。
丸投げのようになってしまい、誠に申し訳ありません。

        購入日   使い終わり日
メイク落とし
洗顔
化粧水
の日付をいれるフォームだけは作成したのですが
        購入日   使い終わり日
メイク落とし   12/1     12/10
洗顔       12/8     12/25
化粧水      12/5     12/16
と日付を入力してからグラフに反映するまでが
どのようにVBAで記入したらよいかわかりません。

大変失礼な質問かもしれませんが
どなたかご教授くださいますよう
お願いいたします。    

【53071】Re:在庫管理できるシステムについて
発言  neptune  - 07/12/13(木) 20:59 -

引用なし
パスワード
   ▼あみゅ吉 さん:
こんにちは

>        購入日   使い終わり日
>メイク落とし
>洗顔
>化粧水
>の日付をいれるフォームだけは作成したのですが
フォームから、ワークシートへの記入は出来ましたか?

>        購入日   使い終わり日
>メイク落とし   12/1     12/10
>洗顔       12/8     12/25
>化粧水      12/5     12/16
>と日付を入力してからグラフに反映するまでが
>どのようにVBAで記入したらよいかわかりません。
ワークシートへの転記が出来れば、マクロの記録機能という
ものすごく強力な機能がありますから、それを利用して手がかりを
得る事が出来ます。

>大変失礼な質問かもしれませんが
>どなたかご教授くださいますよう
>お願いいたします。    
この質問(と言うレベルを超え丸投げのレベルですが)は1つの
プログラムです。もっと質問を絞り込めばもっと親切なResが付くと思いますよ。

最初にお断りしますが、私はわかる質問には答えますが、
カスタムなプログラムは作成しません。

余計なお世話ですが、
在庫管理のような業務に使うプログラムはそれなりの信頼性が必要に
なります。ご自分で理解したうえでプログラムを書き、テストしないと
万一事故があるとあみゅ吉 さん自身が大変な目に遭います。

#この程度のプログラムでもソフトハウスに頼むとそれなりのコストが
#かかります。小遣い程度ではすみません。
#・・・こういうこともお知り於きください。

【53076】Re:在庫管理できるシステムについて
質問  あみゅ吉  - 07/12/13(木) 22:22 -

引用なし
パスワード
   ▼neptune さん:

ご助言・ご忠告ありがとうございます。
確かに信頼性にかかわることで
理解して作成しなくてはと反省いたしました。

>フォームから、ワークシートへの記入は出来ましたか?
大変お恥ずかしいことにワークシートへの入力も
できていない状況でしたので、
ただいま試行錯誤しておりました。
出力するワークシートをSh1として標準モジュールで
宣言した後に
Sub 入力()
  日付入力.Show
  TextBox1.Value = Sh1.Range("A2")
End Sub
とかいてみたのですが、ワークシートへは入力されませんでした。
言葉がたりないのでしょうか?

申し訳ありませんが
ご回答いただけないでしょうか?
よろしくお願いいたします。

またアドバイスのひとつに
>ワークシートへの転記が出来れば、マクロの記録機能という
>ものすごく強力な機能がありますから、それを利用して手がかりを
>得る事が出来ます。
とおしゃってくださったので
入力ができるようになれば、
次のステップとして取り組ませていただきます。
ありがとうございます。

>#この程度のプログラムでもソフトハウスに頼むとそれなりのコストが
>#かかります。小遣い程度ではすみません。
>#・・・こういうこともお知り於きください。
この点に関しましても教えていただきありがとうございました。

【53077】Re:在庫管理できるシステムについて
発言  かみちゃん  - 07/12/13(木) 22:28 -

引用なし
パスワード
   こんにちは。かみちゃん です。

横から失礼します。

>Sub 入力()
>  日付入力.Show
>  TextBox1.Value = Sh1.Range("A2")
>End Sub
>とかいてみたのですが、ワークシートへは入力されませんでした。
>言葉がたりないのでしょうか?

代入の右辺と左辺が逆のような気がします。
  TextBox1.Value = Sh1.Range("A2")
では、Sh1.Range("A2")の値をTextBox1の値とするというものです。
  Sh1.Range("A2").Value = TextBox1.Value
ではないでしょうか?

【53078】Re:在庫管理できるシステムについて
質問  あみゅ吉  - 07/12/13(木) 22:36 -

引用なし
パスワード
   ▼かみちゃん さん:

ご回答いただき、ありがとうございます!!

>代入の右辺と左辺が逆のような気がします。
>  TextBox1.Value = Sh1.Range("A2")
>では、Sh1.Range("A2")の値をTextBox1の値とするというものです。
>  Sh1.Range("A2").Value = TextBox1.Value
>ではないでしょうか?
確かにと変更してみました。
しかし残念ながらでてきませんでした。
ほかに記載が必要なのでしょうか?

【53079】Re:在庫管理できるシステムについて
発言  neptune  - 07/12/13(木) 22:55 -

引用なし
パスワード
   ▼あみゅ吉 さん:
かみちゃん さん
こんにちは

かみちゃんさんフォローありがとうございます。
あみゅ吉 さん
かみちゃんさんからアドバイスもらえてよかったですね。
私と違って、丁寧ですよ。^ ^;

かみちゃんさんからのご指摘もそうですが、
>Sub 入力()
>  日付入力.Show
>  Sh1.Range("A2").Value = TextBox1.Value
>End Sub
ですが、どこに書いていますか?
標準モジュール?だとすると、どのフォームに属するtestboxかという部分が抜けています。
標準モジュールの宣言などの確認も必要です。

こういう事言うと、この前逆切れされたのですが、あえて書きます。
>  TextBox1.Value = Sh1.Range("A2")
>とかいてみたのですが、ワークシートへは入力されませんでした
のような間違いは基本的な文法、基礎知識が欠如しているからです。
せめて解決後でいいですから、入門書の1冊に目を通す事をお勧めします。
で、ないと、皆さんからのアドバイスも理解できませんから。

 ついでに言うと、逆切れされたとき「達人になる気は無い。用が足せれば良い」と言われた
のですが、入門書の一冊読んだぐらいで初心者の仲間入り程度と思ってください。

頑張ってください。

【53082】Re:在庫管理できるシステムについて
質問  あみゅ吉  - 07/12/13(木) 23:12 -

引用なし
パスワード
   ▼neptune さん:
ご指摘ありがとうございます。
>かみちゃんさんからアドバイスもらえてよかったですね。
>私と違って、丁寧ですよ。^ ^;
neptune さんも十分丁寧だと思います☆
気にかけてくださってますし。


>かみちゃんさんからのご指摘もそうですが、
>>Sub 入力()
>>  日付入力.Show
>>  Sh1.Range("A2").Value = TextBox1.Value
>>End Sub
>ですが、どこに書いていますか?

すみません、ふれてなかったですが
上記コードはUserForm1のコードとして記載しています。
UserForm1に日付を入力できるように作成しています。
標準モジュールには
Sub 入力()
  日付入力.Show
  Sh1.Range("A2").Value = TextBox1.Value
  
End Sub
のシートの定義だけ記載しております。


>こういう事言うと、この前逆切れされたのですが、あえて書きます。
>>  TextBox1.Value = Sh1.Range("A2")
>>とかいてみたのですが、ワークシートへは入力されませんでした
>のような間違いは基本的な文法、基礎知識が欠如しているからです。
>せめて解決後でいいですから、入門書の1冊に目を通す事をお勧めします。
>で、ないと、皆さんからのアドバイスも理解できませんから。
>
> ついでに言うと、逆切れされたとき「達人になる気は無い。用が足せれば良い」と言われた
>のですが、入門書の一冊読んだぐらいで初心者の仲間入り程度と思ってください。
>
>頑張ってください。
最近参考書を買って勉強に励んでいるところで
知識不足のためご迷惑をおかけしておりますが、
少しでも多く学べるように勉強させていただきます。
ありがとうございます☆

マクロ機能についてのやり方をお聞きするのは
マナー違反になるのでしょうか?

【53083】Re:在庫管理できるシステムについて
発言  かみちゃん E-MAIL  - 07/12/13(木) 23:33 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>かみちゃんさんからのご指摘もそうですが、
>>>Sub 入力()
>>>  日付入力.Show
>>>  Sh1.Range("A2").Value = TextBox1.Value
>>>End Sub
>>ですが、どこに書いていますか?
>
>すみません、ふれてなかったですが
>上記コードはUserForm1のコードとして記載しています。

もう一度確認させてください。

Sub 入力()
 日付入力.Show
 Sh1.Range("A2").Value = TextBox1.Value
End Sub

このコード本当に、UserForm1に記述しているのですか?
であれば、どのように実行させるのでしょうか?
なんとなく、標準モジュールに記述していて、
「日付入力」というフォームを開くコードに見えるのですが・・・

また、
> 残念ながらできませんでした
というのは、どのようにできなかったのでしょうか?
 MsgBox TextBox1.Value
 Sh1.Range("A2").Value = TextBox1.Value
として、MsgBoxの表示内容を確認してみてください。

>マクロ機能についてのやり方をお聞きするのは
>マナー違反になるのでしょうか?

そんなことないと思いますよ。
マナー違反は、「マルチポスト」とか「作成依頼」「丸投げ」のような質問です。
自分で何をしてきたかとか、どこがわからない、まぁ、わからないところがわからない
というのもあるわけですが・・・

【53086】Re:在庫管理できるシステムについて
質問  あみゅ吉  - 07/12/13(木) 23:55 -

引用なし
パスワード
   ▼かみちゃん さん:

ご回答誠にありがとうございます!!

>>>かみちゃんさんからのご指摘もそうですが、
>>>>Sub 入力()
>>>>  日付入力.Show
>>>>  Sh1.Range("A2").Value = TextBox1.Value
>>>>End Sub
>>>ですが、どこに書いていますか?
>>
>>すみません、ふれてなかったですが
>>上記コードはUserForm1のコードとして記載しています。
>
>もう一度確認させてください。
>
>Sub 入力()
> 日付入力.Show
> Sh1.Range("A2").Value = TextBox1.Value
>End Sub
>
>このコード本当に、UserForm1に記述しているのですか?
>であれば、どのように実行させるのでしょうか?
>なんとなく、標準モジュールに記述していて、
>「日付入力」というフォームを開くコードに見えるのですが・・・
>
確認いたしましたが、UserForm1コードでした。
UserForm1からコード表示させるとでできます。
標準モジュールにはシート()定義だけを記載していますので・・・


>また、
>> 残念ながらできませんでした
>というのは、どのようにできなかったのでしょうか?
> MsgBox TextBox1.Value
> Sh1.Range("A2").Value = TextBox1.Value
>として、MsgBoxの表示内容を確認してみてください。
>
できなかったというのは
フォームは出力され、日付を記入することはできても
ワークシートには出力されないのです・・
MsgBox TextBox1.Valueを追加してみましたが
メッセージボックスが表示されませんでした。
私のプログラムおかしいんですよね。
何度もお手数をおかけし申し訳ありません。


>>マクロ機能についてのやり方をお聞きするのは
>>マナー違反になるのでしょうか?
>
>そんなことないと思いますよ。
>マナー違反は、「マルチポスト」とか「作成依頼」「丸投げ」のような質問です。
>自分で何をしてきたかとか、どこがわからない、まぁ、わからないところがわからない
>というのもあるわけですが・・・
教えていただきありがとうございます。
なにぶん不慣れで失礼な行為ではないかと心配でした。
やはり最初の内容では失礼でしたね。
今後考えて質問させていただきますので
よろしくおねがい致します。

【53090】Re:在庫管理できるシステムについて
発言  かみちゃん E-MAIL  - 07/12/14(金) 9:25 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>>>かみちゃんさんからのご指摘もそうですが、
>>>>>Sub 入力()
>>>>>  日付入力.Show
>>>>>  Sh1.Range("A2").Value = TextBox1.Value
>>>>>End Sub
>>>>ですが、どこに書いていますか?
>>>
>>>すみません、ふれてなかったですが
>>>上記コードはUserForm1のコードとして記載しています。
>>
>>もう一度確認させてください。
>>
>>Sub 入力()
>> 日付入力.Show
>> Sh1.Range("A2").Value = TextBox1.Value
>>End Sub
>>
>>このコード本当に、UserForm1に記述しているのですか?
>>であれば、どのように実行させるのでしょうか?
>>なんとなく、標準モジュールに記述していて、
>>「日付入力」というフォームを開くコードに見えるのですが・・・
>>
>確認いたしましたが、UserForm1コードでした。
>UserForm1からコード表示させるとでできます。
>標準モジュールにはシート()定義だけを記載していますので・・・

では、
Sub 入力()
の実行方法を教えてください。
UserForm1のモジュールに書いているならば、そのコードをどのように
実行しているのでしょうか?
CommandButtonをクリックしたときとか・・・
また、
Sh1.Range("A2").Value = TextBox1.Value
は、「日付入力」フォームが閉じられてからしか実行されないと思います
が、TextBox1.Value は、日付入力フォームのTextBox1なのですか?

>>また、
>>> 残念ながらできませんでした
>>というのは、どのようにできなかったのでしょうか?
>> MsgBox TextBox1.Value
>> Sh1.Range("A2").Value = TextBox1.Value
>>として、MsgBoxの表示内容を確認してみてください。
>>
>できなかったというのは
>フォームは出力され、日付を記入することはできても
>ワークシートには出力されないのです・・
>MsgBox TextBox1.Valueを追加してみましたが
>メッセージボックスが表示されませんでした。

どこのモジュールにどのように追加したのでしょうか?
MsgBoxは、必ず表示されるはずです。
内容が表示される場合とされない場合があるとは思いますが・・・

どうも状況がよく見えません。
たぶん、実際のファイルを見ると、パッとわかるのでしょうけど・・・

【53092】Re:在庫管理できるシステムについて
発言  [名前なし]  - 07/12/14(金) 9:53 -

引用なし
パスワード
   >どうも状況がよく見えません。
>たぶん、実際のファイルを見ると、パッとわかるのでしょうけど・・・


かみちゃんさんはこういう質問の場合、どこのサイトでも同じようにメールアドレスを公開して、個人的にやり取りしようとしてますね。
微妙な書き方しないで堂々と「ファイルを送ってくれれば作ります」と、かけばいいのに。

質問掲示板で個人的なやり取りは通常ご法度とされているからそうしてるの?
作ってあげたいんでしょ? 

【53094】Re:在庫管理できるシステムについて
発言  かみちゃん  - 07/12/14(金) 12:43 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>どうも状況がよく見えません。
>>たぶん、実際のファイルを見ると、パッとわかるのでしょうけど・・・
>
>かみちゃんさんはこういう質問の場合、どこのサイトでも同じようにメールアドレスを公開して、個人的にやり取りしようとしてますね。
>微妙な書き方しないで堂々と「ファイルを送ってくれれば作ります」と、かけばいいのに。

そうですね。
ただ、「作ってあげる」ような時間は私にはありません。
時間さえあれば、作ってあげてもいいかもしれません。
もちろん、営利目的ではありません。私が出すサンプルコードで、ExcelVBAが少しでもかるようになってくれればというだけです。
どこの掲示板でも、個人的なやりとりは、情報共有ができなくなるという観点で、すべきではないというのは、十分承知しています。
でも添付ファイルを見たら、すぐに解決するようなことが多いのも事実と思います。
ただ、個人的なやりとりをした場合は、解決したら、情報共有のために、掲示板へ解決結果の書き込みを必ずお願いしています。
こういう努力をしているつもりなのですが、それでもいけないことなのでしょうか?

それとも、名前なしさんの場合なら、このような質問の場合どうしますか?
人の批判をするだけでなく、自分なら、こうするけど?というものを書いていただけたら、助かります。

【53095】Re:在庫管理できるシステムについて
発言  ハチ  - 07/12/14(金) 13:05 -

引用なし
パスワード
   >[名前なし] さん:
書き込みを拝見するに、
マメに掲示板をチェックされている方だと思いますが、
こういった指摘こそ『堂々と』本来のハンドルネームで投稿されるべきでは?
秘匿を利用したやり方は、やめて頂きたいです。

>かみちゃんさん
私は、かみちゃんさんが『善意の方』だと思っています。
気にされる必要はないと思います。

この手の話はこちらのスレから切り離して、
石鹸箱あたり(勝手に誘導してすいません・・)で、お願いします。
でないと質問者の方が気詰まりになりますよ。

【53097】Re:在庫管理できるシステムについて
発言  neptune  - 07/12/14(金) 14:09 -

引用なし
パスワード
   ▼あみゅ吉 さん:
みなさん、こんにちは

全体の概要がわからないので訳が解りません。
ササッと、こんな感じかなと言う、概要を書いてみました。
多分違うと思うので、できれば、あみゅ吉 さん自身が、誰が読んでも
概要がわかり、再現できるソースを書いてみてください。
・・・下記の改造でもかまいませんよ。

新規Bookで実験
準備
・標準モジュールを1個、UserFormを2個追加
・UserForm1にコマンドボタンを2個追加
・UserForm2にコマンドボタンを1個追加
・以下をそれぞれコピペ
実行
・標準モジュールのsub main を実行
・UserForm1のUserForm2を表示をクリック
・UserForm2のテキストに日付を入力して、日付を入力したから閉じるをクリック
・UserForm1のシートに転記をクリック
'標準モジュール
Option Explicit

Public objsh As Worksheet

Sub main()
  Set objsh = Worksheets("Sheet1")
  UserForm1.Show vbModeless
End Sub

'Userform1
Option Explicit

Private Sub UserForm_Initialize()
  Me.CommandButton1.Caption = "UserForm2を表示"
  Me.CommandButton2.Caption = "シートに転記"
End Sub

Private Sub CommandButton1_Click()
  UserForm2.Show vbModeless
End Sub

Private Sub CommandButton2_Click()
  Call tenki
End Sub

Sub tenki()
  objsh.Range("A1").Value = Me.Tag
End Sub

'UserForm2
Option Explicit

Private Sub UserForm_Initialize()
  Me.CommandButton1.Caption = "日付を入力したから閉じる"
End Sub

Private Sub CommandButton1_Click()
  UserForm1.Tag = Me.TextBox1.Text
  Unload Me
End Sub

>>マクロ機能についてのやり方をお聞きするのは
>>マナー違反になるのでしょうか?
ですが、そんな事はありません。私の場合、そんな事は参考書の殆ど最初の
ページに書いているだろうがって思う程度です。感じ方は個人差がありますから。
それに基本的なことの説明って難しいんです。

ホントにいやであれば、私は書込みしません。それにあみゅ吉さんには
自助努力が感じられるし。

理由:質問と言うのは自助努力があってしかるべき、自助努力なし
の質問は質問ではないと思っています。ですから、参考書なり、Webサイト
なりで、自分なりにでも、少しは勉強する(している)のが当たり前と
思いますので。

#いらぬ茶々が入りましたなぁ。。。かみちゃんさん気にせずに。

【53145】Re:在庫管理できるシステムについて
発言  mitsu  - 07/12/17(月) 15:42 -

引用なし
パスワード
   標準モジュールへ以下を貼り付け

Public sh1 As Worksheet

Sub test()
  Set sh1 = Worksheets("Sheet1")'適宜変更して下さい。
  日付入力.Show
End Sub

ユーザーフォームへ以下を貼り付け

Private Sub TextBox1_Change()
 sh1.Range("A2").Value = TextBox1.Value
End Sub

こういった事でしょうか?

5005 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free