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

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

ただいまの
回答率

90.51%

  • VBA

    1801questions

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

メソッドの種類、使い方は正しいですか?

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 186

King_of_Flies

score 297

アクションボタンを押したら、実行されるメソッドを①とします。
これは、A1セル C5セル J8セルを削除するプログラムで、
削除対象のセルに変更は今後ない想定です。
ただし、削除処理以外に別の動作もします。

②のコードは引数をもとに、対象のセルデータを削除する処理です。

③は引数の受け渡しだけをする処理です。

Sub アクション()--①
    Call DeleteTargetCell(1,1)
    Call DeleteTargetCell(5,3)
    Call DeleteTargetCell(8,10)
    'その他、文字セットや、とにかく処理が多いとする。
End Sub

Sub DeleteTargetCell(row As Integer,clumn As Integer) --②
    Range(row,clumn).Select
    Selection.ClearContenrs
End Sub

これをこう直すとします。

Sub アクション()--①
    Call DeleteTargetCells
    'その他、文字セットや、とにかく処理が多いとする。
End Sub

Sub DeleteTargetCells()
    Call DeleteTargetCell(1,1)
    Call DeleteTargetCell(5,3)
    Call DeleteTargetCell(8,10)
End Sub

Sub DeleteTargetCell(row As Integer,clumn As Integer) --②
    Range(row,clumn).Select
    Selection.ClearContenrs
End Sub

この処理のクッションの役割を担った、DeleteTargetCellsは
何と呼ばれるメソッドになりますか?

①はメインメソッド
②がインスタンスメソッド
DeleteTargetCellsがクラスメソッドですか?

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

ご質問の状況では関数の名称にそのような区別はないように思います。
デザインパターンとしてメソッドの特徴を表すことはありますが、
これは単に処理内容による関数分割を行っているだけのようです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/29 11:38

    このような書き方は実際にしますか?

    キャンセル

  • 2017/09/29 11:51

    一般的に行われることだと思います。
    関数の呼ばれ方による区別をつける場合は、メインルーチン、サブルーチンといった扱いになるでしょうか。

    キャンセル

  • 2017/09/29 13:28

    ありがとうございました。

    キャンセル

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

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    VBAで対象セル内に”NG”が表示されている場合、その列を別シートにコピーする

    VBA初心者です。教えてください。 VBAで対象セル内に"NG"が表示されていた場合、その列の対象セルを別シートにコピーする処理を作成したいです。 例)Sheet1のA2,

  • 解決済

    セルに値を入れたら隣のセルにボタンを自動生成させる方法

    失礼しました。 詳しく用途をご説明します。 B列とC列のセルに何かしらの値をいれると A列にBC列の値を引数とした関数を呼び出すボタンを生成させます。 また、 BとC

  • 受付中

    VBAでの画像の移動

    前提・実現したいこと VBAでマクロの実行ごとに画像の座標を取得して縦、横に1マスずつ動かすコードを書いています 発生している問題・エラーメッセージ エラーメッセージ 'Ran

  • 解決済

    VBA sheetのセレクト情報をリセットしたいです。

    VBAのプログラム内で、RangeやCellsを指定して.selectをしている箇所が複数あるのですが、 処理が一通り走った後、参照先のsheetを見ると、プログラム内部でSele

  • 解決済

    VBA 条件分岐 while文?

     VBAで背景色をつけたい。エクセルの範囲を指定せずに、複数の条件分岐を実現したい ここに質問の内容を詳しく書いてください。 かなり長文になると思いますが、色々試した結果、手詰まり

  • 解決済

    for毎に値を渡したい

    いつも勉強させて頂いております。 現在プログラムを勉強しており、引数や戻り値について学んでいます。 【実現したい処理】 ・function str2()のfor毎にstr2の値

  • 解決済

    後で使いまわしやすい プロシージャ の書き方

     後で使いまわしやすい プロシージャ の書き方 過去の質問で教えて頂いた情報を基にクリップボードを使わないで コピペのコードを書いてみたのですが... また 脳内選択肢が多すぎで困

  • 解決済

    VBA ワークシートイベント

    VBAのワークシートイベントを使用した値の転記を繰り返して行う、値をクリアした場合転記先の値もクリアする。 値の転記は、対象行に末尾から転記していく。対象行に値が入力されていた

同じタグがついた質問を見る

  • VBA

    1801questions

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