質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

950閲覧

Excelvbaでブック、シート名を別の名前におき変えて共通して使えるようにしたい

Apoll047

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/06/15 10:45

編集2020/06/15 12:01

度々お世話になります。
タイトルわかりにくくて申し訳ありません。
初歩的な質問なのです。

当方顧客データのカルテのようなユーザーフォームを作成しております。
ワークシート間、ワークブック間を行き来することが多いためいちいちシート名等のオブジェクトを記述するのは大変な上メンテナンス上良くないと思っています。
そこで標準モジュールでpublicにて変数定義の上glbプロシージャにで変数にオブジェクトを割り当てています。
これをcallを使い各ユーザーフォームのpublicプロシージャを作成し付け加えようと思っていますがうまくいきません。
うまくいかない=オブジェクトがありません。
この時点でうまく割り当てや呼び出しができていないと思われます。

もっと欲を言えば標準モジュール内で変数にオブジェクトが割り当ててあるからもう一度呼び出してという作業すらなくしたいくらいなのですが、
それはできなさそうなのでとりあえずはcallで呼び出そうかと思いましてそうしました。

なにかよい方法あれば教えてください。
ただし変数の宣言と変数へのオブジェクトの割り当ては一度きりにしたいです。

標準モジュール

vba

1Public glbwb As Workbook 2Public glbws As Worksheet 3 4Public Sub glb() 5Set glbwb = ThisWorkbook 6Set glbws = WorkSheets(1)

追記
glbは標準モジュール内に記載されております。
このglbを呼び出して使いたいです。
しかしこのまま使うとオブジェクトがありませんとエラーがでてしまいます。
みなさんはどのようにされてますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

meg_

2020/06/15 11:04

・glb()はどのタイミングでどこから呼ばれるのですか? ・「うまくいかない=オブジェクトがありません。」とはエラーが出たという意味ですか? エラーが発生したコードと正確なエラーメッセージを掲載しないと回答がつきにくいかと思います。
sinzou

2020/06/15 14:44

一つユーザーフォーム(モードレス表示)で、Book、Sheetを切り替えながら 処理ボタンをポチポチ。なら変数の宣言は一か所ですみそうですが。
guest

回答1

0

ベストアンサー

推測で回答します。
glbがどこから呼ばれるのかが不明なので2パターン考えてみました。

1.色々なブック・シートから呼ばれ、その呼び元を対象に処理を行いたい

この場合はglbの引数として対象としたいシートを渡してあげればよいでしょう。

VBA

1別シート 2Sub Test 3 Call glb(ThisWorkbook, Me) 4End Sub 5 6標準モジュール 7Public Sub glb(glbwb As Workbook, glbws As Worksheet) 8End Sub

2.色々なブック・シートから呼ばれるが、対象は常にアクティブのブック・シートである

この場合はそのまんま、アクティブブックとシートを取得すればよいです。
※但しアクティブ前提の処理は破綻しやすいので推奨しません

VBA

1標準モジュール 2Public Sub glb 3 Set glbwb = ActiveWorkbook 4 Set glbws = ActiveSheet 5End Sub

投稿2020/06/16 00:23

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問