いつもお世話になっております。
罫線を1行づつ引く場合、とても時間がかかります。
なにか良い方法はないでしょうか。
ScreenUpdatingを使ってはいるのですが、
1行づつの処理が見えてしまいます。
(selectしている時点で、ダメなのでしょうか)
何か良い方法をご存知でしたら、ご教授いただきたく、
よろしくお願い致します。
下記に私のつたないソースを記入します。
Function kei07_縦中央線削除 _
(file_name, sh_name, f_gyo, e_gyo, f_retu, e_retu)
Application.ScreenUpdating = False
back_file_name = ActiveWorkbook.Name
back_sh_name = ActiveSheet.Name
Workbooks(file_name).Activate
Worksheets(sh_name).Select
Range(Cells(f_gyo, f_retu), Cells(e_gyo, e_retu)).Select
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Cells(e_gyo + 1, f_retu).Select
Workbooks(back_file_name).Activate
Worksheets(back_sh_name).Select
Application.ScreenUpdating = True
End Function
No.5
- 回答日時:
>罫線を1行づつ引く場合、とても時間がかかります
Range(Cells(f_gyo, f_retu), Cells(e_gyo, e_retu)).Select
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
は、書いた罫線を消しているのでは。
又罫線を1行ずつ引く(消す)イメージの処理ではない。コードは、セル範囲を指定して抹消しているでしょう。
10000行x10列ぐらいでマス目罫線を引いて、下記を実行すると、一瞬で終わりましたが。
Application.ScreenUpdating = Falseも入れていません。
Sub test01()
Range(Cells(2, 2), Cells(10000, 10)).Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
またなぜ一旦書いた、横罫線を抹消する作業をするのか判らない。
何か外の原因で遅くなっているのでは。それを質問だけからは難しいと思うが。
>Function名で縦中央線削除 とあるが
>(xlInsideHorizontalだと横罫線が削除されるようだが。
ご回答ありがとうございました。
ご指摘どおり、function名も変ですし、
書いている内容とPGも違いますね。
すみません。
同じような1行1行条件によって線をつける処理を
しているところもあり、また、縦線を消す処理もあったので、
色々なことがごちゃ混ぜになってしまいました。
すみません。
ご回答ありがとうございました。
No.4
- 回答日時:
答えを貰うまでは「そんなのできない」と逃げる割に何をしているのかの情報は出さない,後出しでダメだしだけが得意な解決の難しいご相談です。
>1行づつの処理が見えてしまいます。
というお話の様子から,遅さの原因(ボトルネック)はご質問で掲示されたFunctionとは違う部分,この関数を呼び出している元のループ部分にある様子に思われます。掲示されたマクロも,「そこまで」処理を重くする要因は見あたりません。(あちこちselectしたりactivateしたりとかはあるにしても,です)
また,処理の対象となっているシートに何か別のイベントプロシジャを仕込んでいるなどで,そちらが割り込んで遅くなっているような状況も考えられます。
とりあえず最初の手として,掲示されたFunctionの中で行っている全てのアクションをコメントアウトして「全く何もしない」Functionにしてしまい,呼び出し元を実行してこの関数によってどれだけ遅くなっている(何もしないとどれだけ早くなる)か,まず確認してみてはいかがでしょう。
参考に:
条件付き書式でも,単に使い方に慣れていないだけで問題なく作成できそうに思われますが,まぁマクロでゴリゴリやりたいご希望なら勿論それはあなたのやりたいようになさって頂いて構いません。
ご回答ありがとうございます。
確認等行います。
条件付書式についてのよく知らないのに、
マクロでと言ってしまったこと、すみませんでした。
今から、条件付書式で行えるか、
やってみようと思います。
ありがとうございました。
No.3
- 回答日時:
遅いのは「マクロ自体を繰り返す」事に問題があるんであって、この処理そのものには「これ以上大きく処理速度を上げる要素」は無いです。
Range(Cells(f_gyo, f_retu), Cells(e_gyo, e_retu)).Select
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Cells(e_gyo + 1, f_retu).Select
要は、この部分を例えばFOR-NEXTでくくって
FOR i = 1 TO 10
Range(Cells(i, f_retu), Cells(i, e_retu)).Select
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
NEXT
と言う風にループで回すか、
Range(Cells(f_gyo, f_retu), Cells(f_gyo + 10, e_retu)).Select
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
と言う風に一気に全行を選択して罫線を引くかすればいい、という話です。
すいませんが、コードの確認テストはしていません。動かない時はごめんなさい。
ご回答ありがとうございます。
やはり、処理速度を速めるのは難しそうです。
前の行と比較したりして、線をつけたり
消したりしなければならないため、
一気に選択をしたり、同じLOOPを回したりは
不可能なんです。
ご回答ありがとうございました。
No.2
- 回答日時:
selectせずに試してみるのが一番最初かと思います
Worksheets(sh_name).Range(Cells(f_gyo,f_retu),Cells(e_gyo,e_retu)).Borders(xlInsideHorizontal).LineStyle=xlNone
のように繋げることも可能だと思います
あとはそのシートを不可視にする事も出来ます
worksheet(sh_name).visible=false
こうすれば処理が見える事はありません
ご回答ありがとうございます。
早速やってみましたが、
処理時間は同じでした。
見え方も同じでした。
visible=falseにしても不安な時間を過ごすように
なるため、どうしようか悩み中です。
No.1
- 回答日時:
マクロを使わず,条件付き書式で作成してください。
「中央線」と無理にこだわらず,各列ごと右(または左)の縦線を無しにするか,若しくは最初から表の全域の縦線を無しにしておいて「右(もしくは左)縦線のあるべき列」だけ条件付き書式でその縦線を表示させるように仕込んだ方が多分簡単です。
この回答への補足
ご回答ありがとうございます。
以下の観点などから、マクロで行わなければいけません。
(1)行数・列が確定していない
(2)条件が複雑
(3)マクロの一部で使われるfunction
説明不足ですみません。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Excelでの罫線のみのコピーについて
Excel(エクセル)
-
VBA ユーザーフォームのChangeイベントを停止したい
Access(アクセス)
-
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
-
4
EXCEL VBA マクロ 実行する度に処理速度がどんどん遅くなる原因が知りたい
Excel(エクセル)
-
5
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
6
Unionでの他のシートの参照について
Visual Basic(VBA)
-
7
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
8
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
9
array関数で格納した配列の型を変更する
Visual Basic(VBA)
-
10
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
11
DATE型変数を初期化する方法
Visual Basic(VBA)
-
12
エクセルVBAのEntireRow.Hiddenをスピードアップしたいのですが・・・。
Excel(エクセル)
-
13
Excelのワークシートに行を挿入(高速化)
Visual Basic(VBA)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
EXCELのVBAで作業ファイルを閉じてもメモリの解放をしなくて困っています
Excel(エクセル)
-
16
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
17
【エクセルのマクロ】クリップボードのbitmapをフォームに表示させたい
Visual Basic(VBA)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
Excelでのセル内容の高速消去方法
その他(プログラミング・Web制作)
-
20
split関数で区切り文字がない場合
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル、ページをまたがった...
-
ワードの文章囲み枠(?)を消...
-
(Word)点線枠の消し方を教えて...
-
パワーポイントの表
-
PDFファイルの罫線を消す方法
-
Wordで横線
-
ワードで勝手に点線ラインがでる
-
Excelの表をWordにリンク...
-
オプションボタンの背景を透明...
-
エクセルの表をワードに貼り付...
-
PowerPointの表の罫線を二重罫...
-
ワードで文字のところに長方形...
-
Wordで左右に分割
-
ワードの表の罫線が見えるけど...
-
googleスプレッドシートで「塗...
-
罫線を引いて保存しても消えて...
-
wordで罫線が引けない・・・
-
WORDでヘッダー部分を線で囲み...
-
Wordで、ページ下部に二重線が...
-
エクセル 罫線の色が変えられ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル、ページをまたがった...
-
ワードの文章囲み枠(?)を消...
-
パワーポイントの表
-
PDFファイルの罫線を消す方法
-
PowerPointの表の罫線を二重罫...
-
ワードで勝手に点線ラインがでる
-
Excelの表をWordにリンク...
-
罫線を引いて保存しても消えて...
-
wordで罫線が引けない・・・
-
ワードの表の罫線が見えるけど...
-
Wordで左右に分割
-
(Word)点線枠の消し方を教えて...
-
オプションボタンの背景を透明...
-
エクセルの表をワードに貼り付...
-
[Word]スペースに囲み線はつけ...
-
エクセル 罫線の色が変えられ...
-
エクセルで遥か下まで線が出来る
-
googleスプレッドシートで「塗...
-
ワードで文字のところに長方形...
-
WORD- - - - -点線が消えません
おすすめ情報