excel vbaモジュール 入れ替え 4

Sub hokangosa() お忙しい中、コメントありがとうございます。私もご指摘の通り、その原因を疑いましたが、そうではないようです。というのも2台パソコンを持っているのですが、一方では成功して、一方では成功しないということになるからです。パスはどちらも有効に働いているのですが、片方のパソコンでは働きません。そこで、使っているOSとオフィスのバージョンに原因があるのかと勝手に思っています。, 成功する方のパソコン:windows7 32bit / office 32bit googletag.defineSlot('/21812778492/blog_300x250_common_ctc02_adsence', [300, 250], 'div-gpt-ad-1566564559478-0').addService(googletag.pubads()); ZPOS = Sheet1.Cells(22, 4).Value VBAを利用していると標準モジュールやフォームやクラスを作成していくことになりますが、作成したマクロを他のブックでも使いたいことがあります。, 汎用的に使うのであれば個人用マクロブック(personal.xlsb)に書くことも一つの方法ですが、そこまでではない、という場合もあります。, そういう場合はVBA画面を開き、コピー元のブックから標準モジュール等をエクスポートして、利用するブックでインポートすることでマクロの転用が可能です。, コピー元のブックが持つマクロが標準モジュール1ファイルだけ、などであればいいのですが、その他にも別の標準モジュールやフォームやクラスなどが複数あった場合は全てをエクスポートやインポートするのはかなり面倒です。, 一般的なプログラミング言語であればソースコードはテキストファイルとして扱うことが出来るため他のプログラムへの転用はファイルをコピーするだけで行えます。, ところがVBAのソースコードはブックに紐づいているためテキストファイルをコピーするようには他のブックへ転用できません。, また、VBAはソースコードを独立して扱うことが出来ないためバージョン管理を行う場合にはいちいちエクスポートを1ファイルずつ行うという手間がかかります。, その問題を解消するために、VBAの標準モジュールやクラスやフォームを一括してエクスポートするマクロで対応します。. を書くとテキストボックスに文字を入れ込めますが、別のエクセルブックからだと上手く行きません。 Dim DMN As Double googletag.pubads().collapseEmptyDivs(); VBIDEのライブラリーです。, こんばんは。 End Sub VBAでOption Explicitを … こんにちは、Ryoです。 VBEで標準モジュールやユーザーフォームを追加する場合はメニューの「挿入」から行い、削除やインポート/エクスポートなどもマニュアル操作で行うことが常ですが、これらをVBAの「Addメソッド/Removeメソッド/Importメソッド/Exportメソッド」を使って行うこともできますので、その内容について書いていきます。, VBAからVBEを操作する為には設定として必要な事が二つあります。一つ目は「参照設定」でVBEの「ツール」から「参照設定」を選択し、「Microsoft Visual Basic for Applications Extensibility」を追加します。, 二つ目はExcel側の設定になりますが、セキュリティセンターの中にある「マクロの設定」で「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する」にチェックを入れます。, モジュール等の追加はVBComponentsコレクションのAddメソッドを利用します。, このサンプルコードの動作としては以下の通りです。 上記コードが記述してある「Module1」がありますが、ここに「Module2(標準モジュール)」「UserForm1(ユーザーフォーム)」「Class1(クラスモジュール)」をメッセージボックス表示と交互に追加を実行していきます。, モジュールなどの削除を行う場合には、VBComponentsコレクションのRemoveメソッドを利用します。, 引数Componentに指定したモジュールを削除しますが、そのモジュールを指定するにはItemプロパティの引数にモジュール名を記述します。, .Remove .Item(“Module2”) モジュール2削除指定 .Remove .Item(“Userform1”) ユーザーフォーム1削除指定 .Remove .Item(“Class1”) クラスモジュール1削除指定, 本サンプルの動作としては追加した「Module2(標準モジュール)」「UserForm1(ユーザーフォーム)」「Class1(クラスモジュール)」をメッセージボックス表示と交互に削除を実行していきます。, モジュールなどをインポート/エクスポートするにはImportメソッド/Exportメソッドを利用します。, 引数filenameに対象のファイルを指定することでインポートしますので、サンプルでは同保存先に事前に準備した「Module3」を指定してインポートしています。, Exportメソッドは指定したモジュールをエクスポートしますので、構文の”オブジェクト”に対象のモジュールを指定し、引数filenameに保存するファイル名を指定します。, ちなみにサンプルコード内のコメントにも記述していますが、ファイルの拡張子「.bas:標準モジュール」「.cls:クラスモジュール」「.frm:ユーザーフォーム」となります。, 本サンプルの動作としては、先ず標準モジュールを追加(Module2)し、そのModule2を同保存先にエクスポートします。次に同保存先にある「Module3」を指定してインポート指定います。, 今回の内容は使いどころが限られるとは思いますが、VBAを使用してこのような操作を行うこともできるということを知っておくと後々役に立つこともあると思います。. Excel VBA で SHA256. 貼り付けする処理をしています。 どのようなコードを書けばできるでしょうか。 End Sub, ごめんなさい。解決済みと思って見ていませんでした。 まだですか? VBEで標準モジュールやユーザーフォームを追加する場合はメニューの「挿入」から行い、削除やインポート/エクスポートなどもマニュアル操作で行うことが常ですが、これらをVBAの「Addメソッド/Removeメソッド/Importメソッド/Exportメソッド」を使って行うこともできますので、その内容について書いていきます。   End With こんな感じで如何でしょうか。 ですね。 googletag.defineSlot('/21812778492/blog_300x250_common_sidetop01_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565330658303-0').addService(googletag.pubads()); 実は、指定した日付から銀行営業日(土日祝や年末年始を除く日)で3営業日後とか5営業日後とかの日付を返すFunction関数を作ったのですが、春分の日や秋分の日は他の祝日とは違い、確定した日付ではなく、毎年、官庁から公表される日付が適用されるため、Function関数自体を少し直す必要があるのです。(もっと良い方法があるのかも知れませんが…) Workbooks(fName).Close savechanges:=False Application.ScreenUpdating = False エクセルvbaを始めたばかりの人に教えるとき、まずは標準モジュールを挿入して、そこに書きましょう、と教えます。しかし後で見ると、時に間違ってシートモジュールに書いている場合が結構あります。そういう時に、必ず聞かれるのが、「何が違うんですか?」「どこが違うんですか?」そういう時は、「今はその違いについて説明しても混乱するだけですから、     If .Type = 1 Then Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long 処理終了後、ファイルを閉じるときに、クリップボードに var googletag = googletag || {}; Application.ScreenUpdating = True // fixed01のWORKSが不定期なため共通処理とする Private Const HWND_TOPMOST As Long = -1 googletag.pubads().setTargeting('blog_type', 'Tech'); ---------------------------------------- 先ず、新しいブックのシートモジュール、標準モジュール、それからUserFormに適当なコードを書いおきます。 pbjs.que=pbjs.que||[]; Public Bk3 As Workbook マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。 ここでは「色の付いたセルを合計」という質問が結構出ています。 Application.Quitはそれがあるプロシージャのコードが全て終わるまで Sub Auto_Open() ・VBAコードの指定パスが間違っている Set ObjBk = Workbooks.Open(Filename:=PathName & "\" & BkName) このページでは標準モジュールの一括エクスポートについて紹介しています。 インポートについては「標準モジュール等の一括インポート」をご参照ください。 作成したマクロを他のブックでも使う方法 vbaを利用していると標準モジュ … ブックを開いてから非表示にするまでの瞬時の画面のことですね。 ファイル読込 "データ1.xls", Bk2 尚、これを2002以降で実行する時は、マクロ「セキュリティ」ダイアログで、「Visual Basic Projectへのアクセスを信頼する」にチェックを入れてから実行すること。  ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は VBE(Visual Basic Editor)の起動. 成功しない方のパソコン:windows7 64bit / office 32bit, 成功しない方は、実行した後、特に何のエラー通知も表示されないのにもかかわらず、実行が終了しフォルダーを開けてみたら画像データが見つかりません。, 他のサイトなどでも調べて解決策を探していますが、今の所、何が起きているのかさっぱりわからないでいます。。, エクセルVBAからWindows APIを使って外部プログラムを呼び出すために、Declareステートメントをはじめとした基本をご紹介しています。エクセルVBAは単体でも便利な機能を実装できますが、Windows APIを使って外部のプログラムや機能と組みわせることで、さらに便利なツールが作れてしまうかも?!, 特別なアプリケーションのインストール不要。初心者向けのプログラミング言語VBScriptの紹介です。VBScriptの概要から、実際にプログラムをしてメッセージボックスを表示させるところまでの説明です。VBScriptを使うWindowsの業務効率化に役立ちます。, エクセルVBAを運用業務で活用されている方必見!人為的ミスを大幅に減らす4つの方法を紹介します。エクセルVBAはメイン処理に偏らず人為的ミスを想定したコーディングが業務効率化に繋がります。, エクセルVBAの実行速度が遅い・重いって時ありませんか?そんな時にエクセルVBAのプログラムの処理速度を速くするテクニックを紹介します。プログラムの実行時間を測定する方法も合わせてお伝えします。, エクセルVBAを使ってバラバラの経費精算書のデータをデータベースに集約するシリーズ。今回はエクセルVBAのでWithとOpenメソッドを組み合わせて他のワークブックを開く方法についてお伝えしていきます。, メーラーの定番、OutlookはVBAでプログラミングすることができるんです!「Outlookは便利だけど、更にこれも出来たらいいのにな」なんてことも、Outlook VBAを使えば実現できるかもしれません。このページは、「Outlook VBAを実務で便利に使う」ためのまとめページです。, 「初心者でもわかるエクセルVBAのクラスモジュール」シリーズをお送りしています。今回は、エクセルVBAで自作コレクションの要素を削除するRemoveメソッドの作り方についてお伝えしていきます。, 初心者向けエクセルVBAで請求書を作成するシリーズ。今回は、エクセルVBAで頻繁に取り扱うワークシートを「オブジェクト名」を使って指定する方法です。オブジェクト名とは何か、またその編集方法もお伝えします。, チャットワークWebhookを使ってメッセージ送信をトリガーにGASを起動させる方法, 当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。, マネーフォワードクラウド請求書の請求書一覧の全件をスプレッドシートに書き出すスクリプト, GASでマネーフォワードクラウド請求書の請求書一覧をスプレッドシートに書き出す方法. インターネット上の画像やファイルをダウンロードする必要がある場合、皆様どのようにされていますか?, ダウンロード対象のファイルが一つなら問題ないのですが、複数あると面倒臭いですよね。, 今回はそんな願いを叶える、インターネット上の指定ファイルをVBAとWindows APIを使って任意のフォルダに、任意のファイル名で保存する方法をご紹介します!, VBAでファイルダウンロードを実行するには、Windows APIのURLDownloadToFile関数を使います。, つまり、この関数を使ったマクロをエクセルのコマンドボタンなどにセットしておけば、ワンクリックで指定ファイルがダウンロードできてしまうという寸法です。, Windows APIを使用するには、まずVBAコードの宣言セクションで、「このWindows APIを使います」という宣言が必要であることは前回の記事でご紹介しました。, なのでまずは宣言セクションでURLDownloadToFileの宣言をしましょう。, URLDownloadToFile関数はurlmonというDLLに含まれていますので、API名にはURLDownloadToFileを、DLL名にはurlmonを指定します。, そしてこの関数はLong型の返り値を返してくれますので、Long型で宣言しておきましょう。, 特に値を指定したりするのはszURLとszFileNameの2つで、それぞれの役割と型がこちら。, szURLとszFileName以外3つの変数は”0″を渡すだけなので、このままでも問題ありません。, そしてコード部分でURLDownloadToFile関数を呼び出す際の記述がこちら。, 変数に返された値が0ならファイルダウンロード完了、それ以外ならダウンロードできていないということになります。, サンプルとして、Googleのトップページのアイコンの画像ファイルをダウンロードするコードを用意しました。, このコードを実行してみると、引数の”strPath”に指定したパスに、strURLで指定したURLのファイルがダウンロードされます。, ちなみに、この関数が返してくれる値によってダウンロードできたのかできていないのかが分かりますので、返り値によってメッセージを変えるなどの分岐文を必ず盛り込むようにしましょう。, 今回は、Windows APIのURLDownloadToFile関数を使った、ファイルのダウンロード方法をご紹介しました。, これを使えば、複数のファイルダウンロードも簡単ですし、ダウンロードしたファイルをどこに保存したかわからなくなる、なんていうことも無くなりますね。, エクセルを開くことすら面倒だ!という方にはこちらの記事にあるVBScripitを使ってマクロを呼び出せば、エクセルを開かずともデスクトップのVBSファイルをダブルクリックするだけで、目的のファイルをダウンロードできますよ!, ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。, お忙しいところコメント失礼いたします。 End Sub MsgBox Workbooks("book1").Worksheets("sheet1").textbox1.Text (adsbygoogle=window.adsbygoogle||[]).push({}); VBAで一括エクスポートを行う前に、事前にExcelの設定を変更する必要があります。, または、ファイルタブ→オプション→セキュリティセンター→セキュリティセンターの設定ボタン→マクロの設定、でもいいです。, そこで「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する(V)」にチェックを付けます。, このチェックを付けることで、VBAでの標準モジュールなどのエクスポートやインポートが可能になります。, VBA画面のツールメニュー→参照設定で、「Microsoft Visual Basic for Application Extensibilly 5.3」にチェックをつけてOKを押します。, これによりVBComponentクラスとVBComponentsクラスの利用が可能になります。, VBComponentクラスはVBAProjectの標準モジュールやフォームやクラスの各ファイルの操作を行うことができるクラスです。, VBComponentsコレクションクラスは、そのブックに含まれる標準モジュールやフォームやクラスの全ファイルの管理を行うクラスです。, 以下のマクロは、対象ブックに含まれる標準モジュールなどを全てエクスポートするマクロです。, 10行目と11行目では、ブックが1つも開いていない場合はアクティブのブックは存在しないため、個人用マクロブック(personal.xlsb)を処理対象としています。, それとは逆に、13行目と14行目では、ブックが開いている場合はアクティブブックを処理対象としています。, 私自身は一般のブックよりもpersonal.xlsbをエクスポートする方が多いため、そのときはブックを全部閉じてこのマクロを実行しています。, なお、個人用マクロブックをエクスポートする場合には注意が必要です。後述しています。, フォームのfrmファイルをエクスポートすると、一緒にfrxファイルもエクスポートされます。, Excelブックもモジュールではありますが、ソースコードではないためエクスポート対象にはしていません。, ファイル名はVBAのままで拡張子にはクラス(cls)、フォーム(frm, frx)、標準モジュール(bas)を付与しています。, 個人用マクロブックをエクスポートすると、XLSTARTフォルダに標準モジュール等が出力されます。, C:\Users\ユーザー名\AppData\Roaming\Microsoft\Excel\XLSTART, それ自体は問題ないのですが、XLSTARTフォルダにあるファイルは、Excel起動時に全てExcelブック形式で開いてしまいます。, もしそれが面倒であれば個人用マクロブックのエクスポート後はXLSTARTフォルダから移動するか、9行目から17行目を以下のような感じに変更して個人用マクロブックの場合のエクスポート先を別のものにしておきましょう。, 19行目のパス取得を個人用マクロブック用の12行目と、それ以外の16行目に分けています。, 自分用の新規ブックのテンプレート置き場として使う分にはXLSTARTフォルダはとても有効ですので、是非活用してください。, '// ブックが開かれていない場合は個人用マクロブック(personal.xlsb)を対象とする. Dim ZPS As Double Private Declare Function GetForegroundWindow Lib "user32" () As Long googletag.defineSlot('/21812778492/blog_728x90_common_overlay_adsence', [728, 90], 'div-gpt-ad-1583302554779-0').addService(googletag.pubads()); Public Bk1 As Workbook かな。1行目だけでいいかも。, Excelで、「もしA1が緑色ならば」などと、書式を関数で判断させるにはどうすればよいのでしょうか。, #1の回答通り関数はありません。マクロでなら可能です。 そして以下のコードを同じブックの標準モジュールに書いて実行すると、標準モジュールだけが全て削除されます。 の方ですかね。, VBAで、VBAの標準モジュールを削除したいのですが、なかなか出来ません。たぶん、コレクションについての認識があまいからだと思います。VBComponents コレクションのobject.Remove(component)のヘルプには、VBProjects コレクションには、スタンドアロン プロジェクトを指定します。とありますが、そもそもスタンドアロンプロジェクトって何ですか?Application.VBE.VBProjects(4).VBComponents(1).とするとコレクションでなくなってしまいますが、どうやってモジュールと特定するのでしょうか?どなたか詳しい方いらっしゃいましたらご指導願います。よろしくお願いいたします。 Private Const SWP_NOSIZE As Long = &H1& エクセルVBAだとそのような書き方はないようです。 MsgBox (" >>> 補間誤差自動計算 <<< ") その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。 というような文脈からすると、 Excelファイルを開き、VBAエディターを開くと パスワードを入力せずにモジュールを見ることができます。 VBA. Dim ZPOS As Double Call SetWindowPos(GetForegroundWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) Windows(BkName).Visible = False VBAのコードを記述するためにVBE(Visual Basic Editor)を起動します。①リボンから【開発】タブを選択し、②【Visual Basic】を押します。 ソースコードを入力し、実行する. 常にファイル名を取得出来るVBAをどなたか、教えて下さい。, >現在開いているブックのファイル名 End With コントロールを配置したシートに次のマクロ VBA.  gooで質問しながらも、とりあえず自分で以下のように作ってみました。どのような方法にしたかというと、Auto_Openでファイルを開いたときに、まず対象となる更新前のモジュールシートを削除(更新前が存在しない場合はエラーになるのでOnErrorGotoで回避)し、その後、あらかじめ更新後の内容を記述しておいたC:\定義.txtというファイルを更新後のモジュールシートとして付け加えるというものです。 PathName = ThisWorkbook.Sheets("メニュー").Range("C28").Value Excelで、ファイルを開いたときに、そのファイルのモジュールシートの内容を自動的に更新するVBAを書きたいのです。 gooで質問しながらも、とりあえず自分で以下のように作ってみました。どのような方法にしたかというと、Auto_Openで Public Bk1 As Workbook のどちらかかかな、と思います。, 上記原因であれば、エラー回避のためにURLDownloadToFileの前に、指定したフォルダが存在するかをチェックするコードを入れておくと安心ですね。, ノグチさま 別ブックのMojule1側に下記を書いて With Application.VBE.ActiveVBProject.VBComponents.Add(vbext_ct_StdModule) Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。, Excel VBA: 自動でxlsファイルを開くマクロでメッセージが現れたとき自動でボタンを押す方法, Excelファイルを開くとき、読み取り専用にするかどうかのダイアログを出ないようにしたい. その問題を解消するために、VBAの標準モジュールやクラスやフォームを一括してエクスポートするマクロで対応します。 以下のマクロは個人用マクロブックpersonal.xlsbと通常のブックのどちらにも対応しています。 事前設定. また、オートシェイプのテキストボックスの場合は簡単に出きるのですが、コントロールツールボックスではどうしても上手く行きませんので、対象法などご存知の方いらっしゃいましたら教えてください, エクセルを新規に開きました。 こんな感じで如何でしょうか。 で切り捨て googletag.defineSlot('/21812778492/blog_300x250_common_fixed01_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565194485392-0').addService(googletag.pubads()); で切り上げです。 VBAを利用していると標準モジュールやフォームやクラスを作成していくことになりますが、作成したマクロを他のブックでも使いたいことがあります。, 汎用的に使うのであれば個人用マクロブック(personal.xlsb)に書くことも一つの方法ですが、そこまでではない、という場合もあります。, そういう場合はVBA画面を開き、コピー元のブックから標準モジュール等をエクスポートして、利用するブックでインポートすることでマクロの転用が可能です。, マクロを転用する際に面倒なことがあります。それはエクスポートとインポートがそれぞれ1ファイルずつしか行えないことです。, コピー元のブックが持つマクロが標準モジュール1ファイルだけ、などであればいいのですが、その他にも別の標準モジュールやフォームやクラスなどが複数あった場合は全てをエクスポートやインポートするのはかなり面倒です。, 一般的なプログラミング言語であればソースコードはテキストファイルとして扱うことが出来るため他のプログラムへの転用はファイルをコピーするだけで行えます。ところがVBAのソースコードはブックに紐づいているためテキストファイルをコピーするようには他のブックへ転用できません。, その問題を解消するために、VBAの標準モジュールやクラスやフォームを一括してインポートするマクロで対応します。, VBAで一括インポートを行う前に、事前にExcelの設定を変更する必要があります。, 開発タブ→コード→マクロのセキュリティを開きます。または、ファイルタブ→オプション→セキュリティセンター→セキュリティセンターの設定ボタン→マクロの設定、でもいいです。, そこで「VBAプロジェクトオブジェクトモデルへのアクセスを信頼する(V)」にチェックを付けます。このチェックを付けることで、VBAでの標準モジュールなどのエクスポートやインポートが可能になります。, VBA画面のツールメニュー→参照設定で、「Microsoft Visual Basic for Application Extensibilly 5.3」にチェックをつけてOKを押します。, これによりVBComponentクラスとVBComponentsクラスの利用が可能になります。, VBComponentクラスはVBAProjectの標準モジュールやフォームやクラスの各ファイルの操作を行うことができるクラスです。, VBComponentsコレクションクラスは、そのブックに含まれる標準モジュールやフォームやクラスの全ファイルの管理を行うクラスです。, ファイル操作をFileSystemObjectにて行っているため、VBA画面のツールメニュー→参照設定で「Microsoft Scripting Runtime」にチェックをつけてOKを押します。, 以下のマクロは、対象フォルダ配下に含まれる標準モジュール、クラス、フォームを全てインポートするマクロです。, 1番目の引数にインポートするブックのWorkbookオブジェクトを指定し、2番目の引数にインポートするモジュールが格納されているフォルダを指定します。, 上のコードにはImportAll関数とsearchAllFile関数の2つがあります。メインの処理はImportAll関数です。, searchAllFile関数を使って指定フォルダ配下のファイルパスの配列を取得します。, 配列をループし、ファイルパスの拡張子がcls、frm、basであるか(インポート対象か)を判定し、インポート対象の場合は同名モジュールを削除してからインポートを行います。, 同名モジュールが無い場合にRemoveメソッドを行うとエラーになるため、それを回避する目的で2行目に「On Error Resume Next」を入れています。, 削除時に存在チェックを入れてもよかったのですが、面倒だったのでこのようにしています。, searchAllFile関数は指定フォルダ配下にある各ファイルのパスを配列に格納します。, ここではモジュールのパスが格納されることになりますが、関係ないファイルが格納されていればそれも配列に格納されます。, この関数についての詳細は「VBAで指定フォルダのファイル一覧を取得」で紹介しています。, 実行結果

Musicjp 解約 Au 4, 牛乳パック 小物入れ 六角形 7, 愛の不時着 ヒョンビン かっこいい 17, イオンカード 保険 500円 4, Raspberry Pi I2c プルアップ 4, ディズニー お酒 年齢確認 4, 赤ちゃん 編み物 初心者 キット 6, 工学部 女子 勘違い 24, Line 返信不要 男性心理 9,

Leave a Reply

Your email address will not be published. Required fields are marked *