
ヤフオクの管理をエクセルでやっていて、今度発送連絡文もエクセルで作ってしまおうと思っています。
添付のような管理ファイルです。
H列の発送連絡に以下のような関数を記入しました。
------------
=A1&"さん
発送しました。
伝票番号は"&G1&"です"
------------
※実際にはもっと長いです。
これをコピーして取引ナビ(連絡用掲示板)に貼り付ける予定です。
これが、1シートに500行以上あり、さらに12シート(12ヶ月分)あります。
とりあえず作ってみたのですが・・・重すぎてエクセルが開けなくなりました。
マクロはある程度使えます。
なんとか、重くならずに上記を実現する方法はありませんでしょうか。
ご教授お願いいたします。

No.6ベストアンサー
- 回答日時:
No2 merlionXXです。
「取引ナビ」ってなんだかわからないので、とりあえずYahooのサイトを開く例です。URLを書き換えればお好きなとこを開くと思います。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim r As Long '変数宣言
Dim IE As Object '変数宣言
If Target.Column <> 8 Then Exit Sub 'ターゲットが8列目(H列)以外なら終了
r = Target.Row 'ターゲットの行番号を取得し変数rに代入
Target = Range("A" & r) & "さん" _
+ Chr(&HD) + Chr(&HA) + "発送しました。" _
+ Chr(&HD) + Chr(&HA) + "" _
+ Chr(&HD) + Chr(&HA) + "伝票番号は" & Range("G" & r) & "です。" 'ターゲットに入力
Cancel = True 'ダブルクリック状態をキャンセル
Target.Copy 'ターゲットをコピー
Set IE = CreateObject("InternetExplorer.Application") 'IEのオブジェクト作成
IE.Visible = True '見えるようにする
IE.Navigate "http://www.yahoo.co.jp/" '指定したURLを開く
End Sub
No.5
- 回答日時:
これは、今回の関数を入れてから重くなったのでしょうか。
重すぎて開かないというのは、再計算の時間がかかっているということでしょうか。
何か他に原因が有りそうな気がしますが、取合えず。
>※実際にはもっと長いです。
>これをコピーして取引ナビ(連絡用掲示板)に貼り付ける予定です。
目的であれば、ワードの差込印刷の機能で定型文書の中に名前などを
入れ込んではどうでしょうか。
或いは、別シートに文書入れて、必要箇所に名前などを引っ張ってくる式
或いはVBAを実行させる方法が便利でもあるように思います。
No.4
- 回答日時:
計算式はH列だけですか?
実際にはセル参照だけで計算もしていないし、配列でもないし
1シート1000行としても12シートで12000行しかないわけですよね、それだけでエクセルが開けなくなるほど重くなることはないと思うのですが。
重くなるのには他に原因がありそうですが。
発送連絡のH列はすべて文面が一緒で落札者と伝票番号の参照だけなら、すべての行に作る必要が有るのでしょうか?
別シートで連絡文のひな型作成を行い、連絡送信するセル(行)を選択しマクロで必要項目を差し込み送信結果として確認セルにチェックするような形式にすると処理も軽くなるかと思います。
No.3
- 回答日時:
はじめまして
関数ですと、セルの値が変更される度に「すべてを」再計算しますので、数が多いとどうしても遅くなります。
その点、マクロならば実行のタイミングや計算の範囲を指定できますので、軽くできると思います。
もう少し具体的な仕様が分かればある程度マクロが組めますが、
おそらく使っているうちに改良を加えたくなると思うので、
マクロの作り方をアドバイスします。
まず、ご質問にある関数をマクロで書くと以下のようになります。
Sub test()
[H1] = [A1] & "さん" & Chr(10) & "発送しました。" & Chr(10) & "伝票番号は" & [G1] & "です"
End Sub
ただしこれでは、1行しか処理できません。
「For...Next ステートメント」を使うと繰り返しの処理ができます。
Sub test2()
Dim i
For i = 1 To 10
Cells(i, "H") = Cells(i, "A") & "さん" & Chr(10) & "発送しました。" & Chr(10) & "伝票番号は" & Cells(i, "G") & "です"
Next i
End Sub
これですと1~10行目まで処理できます。(Forの中で1~10と指定しているからです)
後は
・どのタイミングで実行するか
(マクロですので、セルの値を変更しただけではH列に反映されません)
・どの範囲を
(「全部のシートのデーターの入っているところ」という設定もできますが、それでは処理に時間がかかってしまいます。
500件くらいのデータなら「今開いているシート」でもちょっと待つ位で完了します)
という設定が必要になります。
No.2
- 回答日時:
各シートのデータ配置が同じなら、マクロでやってみましょう。
標準モジュールやシートモジュールではなく
Thisworkbookモジュールに以下をコピペ
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 8 Then Exit Sub
r = Target.Row
Target = Range("A" & r) & "さん" _
+ Chr(&HD) + Chr(&HA) + "発送しました。" _
+ Chr(&HD) + Chr(&HA) + "" _
+ Chr(&HD) + Chr(&HA) + "伝票番号は" & Range("G" & r) & "です。"
Cancel = True
End Sub
これで、すべてのシートのH列上でダブルクリックすると、その部分(ダブルクリックしたセル)にA列とG列のデータを入れたご指定の文言が自動入力されるはずです。
この回答への補足
ご回答ありがとうございます!!
どうしようと本当に迷っているのですが、光が見えてきました☆
教えて頂いたソースが正直私には難しいので現在勉強中です。
文字のつなげ方が関数の時とは違うようで・・・
あと、IF文がどのような処理なのかわかりません(><)
これを元に、以下のようにしようと考えています。
(1)ダブルクリックしたら発送文をクリップボードにコピー
(2)コピーした後、取引ナビのページを開く
これをマクロ化すれば、あとは貼り付けだけなので、楽で軽いエクセルになりそうです♪
もし、お時間に余裕があればもう少し補足して頂けるとありがたいです。。。
No.1
- 回答日時:
マクロにすれば関数を埋め込むよりも軽くなるのは間違いないと思います。
マクロを個人用マクロブックに置けば、該当ブックの負担は0ということになります。
該当ブックにマクロを保存した場合でも、関数を埋め込むよりは有利だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) 記録マクロのみでできますか? 7 2022/08/07 20:38
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- ヤフオク! Q1)ヤフオクで落札直後、裁判がどうこう言ういきなり出品者の身勝手で落札者に対して失礼な自己満ルール 6 2023/08/12 10:57
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロ1があります。 A1のセル...
-
エクセルファイルを開いた回数...
-
エクセルで○をつけるマクロ設定
-
Excelのシート上のShapeにイベ...
-
エクセルで複数のシートのクリ...
-
EXCELのダイアログシートって、...
-
Excel VBAでのWorksheet_Change...
-
【エクセル】フリーワード検索...
-
任意のセルでマクロを実行させたい
-
前月分を次月シートに繰越でき...
-
エクセル シート内の一番下のセ...
-
エクセルで特定の行だけ行削除...
-
複数シートのグループ化ができ...
-
Excelで数字を入れたら対応する...
-
Excelマクロでブック全体を検索...
-
エクセル:セル内の文字列の最...
-
Excelでセル内の文字をファイル...
-
エクセルVBAで実行中画面を...
-
【エクセル】「実行時エラー’10...
-
エクセルのチェックボックス誤作動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
エクセルで複数のシートのクリ...
-
マクロ1があります。 A1のセル...
-
Excelで数字を入れたら対応する...
-
Excelのシート上のShapeにイベ...
-
エクセル シート内の一番下のセ...
-
長い時間かかるマクロが実行中...
-
【エクセル】フリーワード検索...
-
エクセルで特定の行だけ行削除...
-
エクセルファイルを開いた回数...
-
EXCELのダイアログシートって、...
-
【エクセル】「実行時エラー’10...
-
Excelでセル内の文字をファイル...
-
セルの一部分だけを太字にする方法
-
エクセル マクロ 一定時間おき...
-
Excelにて、同じ画像を複数のセ...
-
前月分を次月シートに繰越でき...
-
エクセル:セル内の文字列の最...
-
excel定数の違いについて。xlAu...
-
excelで画像のハイパーリンクを...
おすすめ情報