[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロボタンを押すと別シートに保存されるVBAコードについて』(そら)
仕事で膨大なデータの管理をするためのシートを作成しています。どうしてもVBAのコードがうまくできなくて教えてください。超初心者です。
管理シートは3シートの展開です
?@シート名『入力シート』
?Aシート名『保存シート』
?B元データ
請求?bフ数字を?@のあるセルに入力してマクロボタンを押すと、
?Aの一覧表のセルA列にどんどん順番に保存されていくようにしたいと考えています。
?Bの元データは?AのA1に自動で転記されると他の関数で情報が反映していく仕組みです
いろいろ調べてたのですが、どうしてもボタンを押しても転記がうまくいきません。どうか教えていただけないでしょうか。
< 使用 Excel:Excel2010、使用 OS:Windows10 >
>どうしてもボタンを押しても転記がうまくいきません。
・・と言うことは、曲りなりに(失礼)コードは書けているんですね?
そのコードを提示できませんか? 無理にとは言いませんけど。
(半平太) 2019/12/21(土) 16:02
回答ではないですが・・・
■1
残念ながら私の環境だと一部文字化けしてしまっています。
ご自身の環境でも同じようになっていれば、直したほうがよいとおもいます。
■2
>いろいろ調べてたのですが、
どのようなことを調べて、どのようなコードを書いたのでしょうか?
提示頂いたほうが、状況の把握がしやすいです。
■2
>ボタンを押しても転記がうまくいきません。
どのようにうまくいかないのでしょうか?
・エラーがでるならどの箇所で、どのようなエラー(エラー番号、エラーメッセージ)がでる
・エラーにならないが、○○になるはずが××になる
などの情報をお伝えいただくと、アドバイスできることがあるかもしれません。
(もこな2 ) 2019/12/21(土) 16:07
文字化けの件、読みづらくてすみませんでした。
こちらで文字を入力している表示は問題なかったのですが、アップをしたら文字化けの表示になってしまいました、プレビューで直し方がわからずそのままの投稿となってしまい重ねてすみません。設定を確認してみます
下記の作業ができるシートを作成したいと考えています
ド素人の質問で本当にすみません。
どのようなコードを書いたらよいか教えてください
1 Sheet1名「入力フォーム」→請求no.の数字をC8のセルに入力→マクロボタン名「OK」を押す
2 Sheet2名「データ保存シート」→1の作業で入力した請求no.が次々A1、A2、A3…という状態で転記され保存されていく
どうかよろしくお願い致します。
(そら) 2019/12/21(土) 22:25
Sub さんぷる() With Worksheets("データ保存シート") If .Range("A1") = "" Then .Range("A1").Value = Worksheets("入力フォーム").Range("C6").Value Else .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Value = Worksheets("入力フォーム").Range("C6").Value End If End With
End Sub
みたいなコードを書いて、その「ボタン」に登録すれば目的は達成できるとおもいます。
・・がいろいろ端折ったので分かりづらいとおもいますので、研究用には向かないと思います。
研究する場合はほかの回答者さんのアドバイスを参考にしてみてください。
(もこな2 ) 2019/12/22(日) 05:17
マクロボタンを押すことでつぎの2点の作業が一度に終わるようにしたいです。
1.『保存シート』セルA列に順に請求no.が転記される
2.シートの保存
コードを登録してみます。
すみません、おそらくまたわからなくなりましたら質問させてください。
よろしくお願いします。
(そら) 2019/12/22(日) 13:26
(もこな2 ) 2019/12/22(日) 14:34
(そら) 2019/12/22(日) 19:47
Public Sub Sample()
'WorkBookオブジェクト格納用変数 Dim objWbk As Workbook
'ファイルBを開く Set objWbk = Workbooks.Open("C:\データ保存シート.xlsx")
'ファイルAの内容をファイルBのセルに入力する → objWbk.Sheets("入力フォーム").Range("C8").Value = データ保存シート.Cells(A1; 1).Value
Sub さんぷる()
With Worksheets("データ保存シート") If .Range("A1") = "" Then .Range("A1").Value = Worksheets("入力フォーム").Range("C8").Value Else .Cells(.Rows.Count, "A").End(xlUp).Offset(1).Value = Worksheets("データ保存シート").Range("C8").Value End If End With
End Sub
(そら) 2019/12/22(日) 23:37
(γ) 2019/12/22(日) 23:41
(もこな2 ) 2019/12/23(月) 09:01
(そら) 2019/12/23(月) 23:31
A1のセルなら
シートのセル全体から見れば一行目の一列目なので、
Worksheets("データ保存シート").Cells(1, 1) か
Worksheets("データ保存シート").Cells(1, "A") 等でも
>>マクロボタンの登録の内容がおかしいのでしょうか。
フォームコントロールか
アクティブエックスか
どちらか解りましたですか。
(隠居じーさん) 2019/12/24(火) 07:23
>このセルの行、列の書き方は(1,A1)になるということなのでしょうか。
>どのように書いたらよいか教えてください。
違います。
それだと、「A1」っていう変数になってしまい、定義(変数の宣言)してないから
Cells(1,0)になり、そのようなセルが存在しないので、実行時エラーになるとおもいます。
また、聞かれてませんが、
誤 データ保存シート.Cells(A1; 1).Value 正 Worksheets("データ保存シート").Cells(【行番号】, 1).Value
です。(提示の書き方だと「データ保存シート」っていう変数になってしまってます)
ところで、
「入力フォーム」「入力フォーム」は別ブックだったんですか?
(もこな2 ) 2019/12/24(火) 07:26
「入力フォーム」「データ保存シート」は別ブックだったんですか?
でした。
(もこな2 ) 2019/12/24(火) 07:28
さらには、マクロを実行(ボタンを押す)たびに「データ保存シート.xlsx」を開くのでしょうか?
(もこな2 ) 2019/12/24(火) 07:54
もこな2様 何度もご返信ありがとうございます。
「入力フォーム」と「データ保存シート」は同じフォルダにある別々のシートです。
仰る通り「Sample」と「さんぷる」が連携しておらず、ご指摘いただいたセルの書き方を修正しても転記されず、迷走しております。
また、「入力ホーム」に請求NO.を特定のセルに入力し、その下にマクロボタンを配置し、ボタン名は「OK」という名前でアイコンを表示し、一連の作業を実行させるには下記のコードでよいのでしょうか
Sub ボタン7_Click()
'
' OK_Click Macro
End Sub
素人すぎて本当にへんな質問ばかりしてすみません。
教えていただけるでしょうか。
どうぞよろしくお願い致します。
(そら) 2019/12/24(火) 10:33
超初心者が、なんでマクロだとそういう事が出来ると解るのが不思議なんだが?
(基礎の勉強したら!) 2019/12/24(火) 10:49
誤 「入力フォーム」と「データ保存シート」は同じフォルダにある別々のシートです。 正 「入力フォーム」と「データ保存シート」は同じフォルダにある【別々のブックにある】シートです。
ということですかね。
■2
>〜また、「入力フォーム」に
間違っているとも、間違っていないとも言えます。
先にボタンを作って、マクロを記述しようとすると、デフォルトでそんな名前になりますね。
既に示しているように先にマクロを作ってから、【登録】するのであれば、そうはならないでしょう。(意図してそんな名前にしたなら別ですが)
■3
確認の答えが返って来てないので再度聞きますが、「データ保存シート」が存在するブックは、
1.マクロを実行する前に手動で開いている 2.マクロを実行する前には開いていない 3.マクロを実行する時に開いているか、開いていないかは時々で違う
どれですか?
■4
↑と関連しますが、「データ保存シート」が存在するブックは、保存した後すぐに閉じるのですか?
■5
3と4の答えによっては、
(1)ボタンを押す (2)「データ保存シート」が存在するブックを開く (3)データを転記する (4)「データ保存シート」が存在するブックを上書き保存する (5)「データ保存シート」が存在するブックを閉じる
ってことになりますが、普通は、何回かボタンを押すことを想定して
【ボタンを押したときの処理】 (1)「データ保存シート」が存在するブックが【開いていないときだけ】マクロを使って開く (2)データを転記する (3)「データ保存シート」が存在するブックを上書き保存する
【別処理】 (1)「入力フォーム」があるブックを閉じるときに「データ保存シート」があるブックが開いていたら保存せずに閉じる。
みたいになるとおもいます。
(もこな2 ) 2019/12/24(火) 11:06
(もこな2)様
説明不足ですみません。
また、丁寧な説明をいただいて本当にありがとうございます。
返信いただいた内容を整理して再度質問させてください
よろしくお願い致します。
(そら) 2019/12/24(火) 17:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.