Excel VBA 質問スレ Part65
■ このスレッドは過去ログ倉庫に格納されています
ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※前スレ Excel VBA 質問スレ Part64 https://mevius.5ch.net/test/read.cgi/tech/1575297834/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured Shapeの当たり判定の計算方法を教えて下さい。 基準の円のShapeにTextBoxが当ってたらTrue、当たって無ければFalse 円は選択時の□の面積じゃなく実際の円の大きさ。TextBoxは選択時の□の大きさ。 >>105 表示位置とサイズから比較したらいいんじゃね 当たり判定だからゲームじゃないの? Corei世代でも60fpsでないから使いたくないけど。 >>105 専用の関数などは用意されてないので、TextBoxの頂点と円の座標を比較したり、円の中心からの距離を三角関数で計算して調べるしかない VBAであえてゲーム作ったりするのは 芸ではあるけど開発効率的に筋は悪いよね グラフィックにこだわるなら別言語推奨 >>102 普通は定数で行、列を宣言するわな。 >>103 見にくいコードは書いてる奴の力量次第だろ。 >>104 ロックはしない。 そんなもんは解除されるかもしれんし、当てにしない。 というか、作ってるもの次第だね。 ワークシートの見た目と二次元配列を一致させるとか笑わせるなあ。 少し慣れた奴なら列も数値で扱うのがぴったり来るんだよ。 何故なら、最初から二次元配列的に考えるから。 VBE上に自作のメニュ―作って、入力するだけで列名←→列数はわかるげとな。 作る力量無い奴はイミディエイトで調べりゃ良いだろ。 VBEのCommandBerでイベント扱うのはクラスが必要だし、上級者の領分にはなるかもな。 VBE弄るVBAは会社じゃ使わないから通常のCommandBarでメニュー作ってやっても良いんじゃね? どっちにしても時間は考えることに使ってるんで、毎回イミディエイトで調べても大した話じゃね―んだわ。 >>63 今の若いヤツらはそういう説明じゃ200%挫折する。普段の業務を自動化っていう感覚がわからないそう。やっぱスマホタブレット世代はPC=ワープロにしか思えんのかもな。 >>111 ロック外されたくないならパスワード付ければいいじゃん >>111 > VBE上に自作のメニュ―作って、入力するだけで列名←→列数はわかるげとな。 まさか自慢じゃないよね?w 傍から見てたら馬鹿なことしてるなとしか思えんし 共有編集可能にしたら更新は5分間隔だけどVBAとかで1分以内にできないかな?複数のパソコンで映してる同じエクセルファイルの内容を別のパソコンから共有編集で編集して保存したら1分以内に複数のパソコンにも表示を反映させたい。 あ、どうせ、コピーしても意味ねぇよ。記憶してるのPCじゃねぇから。 考えまとめるためにPC使ってるだけ、ただそれだけなんだよ。 >>116 君にできないからと言って、そんなもんが自慢になると思うかね? >>120 日本語の理解力がないのかな? 自慢にもならないことをいちいち書くとかバカじゃね? って言う事な >>121 wS1.Cells(c.Row, "Z").value < 0 そもそもこれ必要? いや、いらないのはそっちじゃなくて、ElseIf〜 のIf〜Then If Not c Is Nothing Then If wS1.Cells(c.Row,"Z").value<0 Then .Cells(i, "V") = wS1.Cells(c.Row, "Q") Else .Cells(i, "X") = wS1.Cells(c.Row, "Q") Endif Endif でいいはず エラーが出たのが実は一つ上の行で、i に代入してなかったってオチじゃないよね >>122 悔しいからって一々反応しなくて良いんだぞwww どこで受けたストレスをここで発散してるんだろう・・・ ここの人等は本当にきついね 一部だけかもしれんけど 他スレ建ててもどうせそこにやってくるし困ったもんだ いいから質問しろよ 俺が優越感感じられるように割と簡単なやつな 天才な人、教えて下さい。 フォルダAの中にフォルダa1があってこの中にxxx.zipがあるとします。 このxxx.zipを直接クリックしたりしないで解凍するプログラムを書くのはVBAで可能でしょうか? たまたま知ってたけど天才じゃないから教えられない 残念です 無念です 俺も天才じゃないんだわ いるんか?このスレに、天才が >>135 「powershell zip 解凍」で検索! zipをxlsxにすれば、VBAを使わなくても開くだけで解凍できる。どこに解凍されるかは知らんが。 >>126 zip解凍ぐらい大して難しく無いんだから答えてあげたら? >>143 既に>>139 で答えられてるだろ スレの流れも追えないのか?w >>141 VBA 共有編集でググレば参考になる所が出てくる。 そういやxlsxがそもそもzipファイルなんだよな そーなのか 道理で大昔作ったフォーマットを作り直してみたら容量が半分程度だったんだ 効率的なコード書けるようになった俺スゲーって訳じゃなく、エクセルさんが凄かったのね 拡張子zipにして展開すると画像ファイル取り出せるしな ネットでこんな素晴らしい物を見つけたんだけれども、これがデータ量が多いと結構時間掛かるんだけど、高速で図形として書き出す方法って他にありませんか? http://izawa-web.com/excelbcad/dxfreader.html >>156 CADアプリで画像にでも変換してシートに貼り付けた方が早くて綺麗 オートシェイプに変換すると重くなるし比率が狂うし、メリットがなさすぎる >>157 貼って終わりならそれでもいいんですが、数あるCADデータの中から指定のデータを呼び出してエクセルに貼り付けて線の色とか文字を取得したいんですよね。 >>145 更新時間を短くする方法は載ってなかった あるマクロを開いた瞬間に自作したユーザーフォームが出るようにする それと同時にエクセルファイルを選択できる ファイルを開くウィンドウが出るようにする ド基礎以前だと思うのですがおしえていただきたく、、 >>160 Workbook_Open() UserForm1.Show Application.GetOpenFilename ド基礎以前発言がひっかかるな... あるマクロが他人の作った編集できないマクロなら難しいね パスワードクラックはNGで ド基礎以前のこともわからないやつに教えても理解できんだろう >>162 ありがとう、ネットで捜してコピペしながら頑張ってくわ 起動すると作ったユーザーフォームが開きつつ ファイルからエクセルを選べるウィンドウを出す ↓ 開いたエクセルにはBとCの2列目からずらーっと数字が並んでるからそれをあらかじめ自分のカスタマイズした散布図にする (2列目から始まるが終わりはデータによって違う) ↓ ボタンによって2つの散布図に分けられる がんばりやす >>162 そりゃ駄目だ。 モーダルとモードレスを調べよう。 モーダルでやりたかったらフォームのInitializeかActivateイベントだな。 >>159 AutoUpdateFrequencyプロパティじゃね? ググっただけだけど。 >>170 それ、イミディエイトペインで試したけど、5未満はNGだよ >>145 の共有編集って、Excel2016で実装した、OneDriveとか使ってクラウドでやるやつだと思ったんだけど、違うのかな ×共有編集 ○共同編集 らしいけど 自動更新の間隔を短くするのが無理なら手動でできないのかな? 強制的に切断と接続を繰り返してみたらどうだろう >>172 ローカルのつもりだったんだけどそれなら共同編集になるのかな? セルA1とB1の数値が一致しない場合はC1を塗りつぶす、というのはできるのでしょうか? >>177 If A1 <> B1 Then [C1].Interior.Color = RGB(1, 234, 56) A行の値を見て、その値が1だったら、空白行を上に2つ入れたいのですが、できますか。 間違えた。 A列の値を見て、その値が1だったら、空白行を上に2つ入れたいのですが、できますか。 >>180 Sub Macro1() For r = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 If Cells(r, 1) = 1 Then Rows(r).Resize(2).Insert Next End Sub 子が吐き出したcsvデータ(子の状況により1ファイル数行〜数百行程度のデータ00000000.csv〜FFFFFFFF.csv)を親で吸い上げて管理用に整理するマクロを作成しているのですが子のデータ数が多くなったせいか親の処理を実行中にExcelが落ちるようになりました。 現状では Workbook.Open 00000001.csv でファイルを開いてから配列に叩き込んで処理しているのですが、 他に何か開かずに直接配列に収納するとか別の開き方など良い手段はありますでしょうか。 >>186 その説明では落ちる原因がわからんので対処のしようがない とりあえずテキストファイルとして開いてSplitで配列に入れるとか >>174 自動更新しても更新されない 強制的にはできないね >>174 最初、自前タイマーでの自動保存を提案しようと思ったけど、全ユーザーの同期とか排他処理とか必要になるからやめた 同時使用数にもよるけど、現状の5分ぐらいが実用限度だと思う それでも問題があるから、MSも共有ブック機能を非推奨にしたんだろうしね >>186 まず落ちる原因の特定が必要 本当にデータ量が原因かどうか? それでもし量の問題だとしたら 同時に必要なデータを見定める たとえばA、B、Cのファイルを同時に開いてたが じつはAとB、BとCで処理する工夫の余地があるとか それでもアルゴリズムではどうにもならない量なら SQLとかのデータベースに移行する https://oshiete.goo.ne.jp/qa/1972570.html ActiveWorkbook.SaveAsにするとファイル名変えずに保存できる理由を教えてください Copyした時点で別ブックが作られるんですか? マクロで作られた印刷ボタンを押すと両面印刷で出てくるからこれを片面印刷に統一したいんだけどどうしたらいいの? >>192 マクロを書き換える 印刷方法の変更はプリンターごとに違ってて、Excelのマクロの中でも一番面倒な部分だから、会社でわかってる人に聞くのが早い プリンタ登録を2つに増やして使い分けるのが簡単。 でもWin95のころはコピーするだけでプリンタ増やせたけど年々難しくなるよね 正直印刷は、機器変更、NW、印刷位置、紙質とかでトラブルが非常に多くなるから、 金、人命とか絶対にVBAで自動化しなければ行けない理由がない限り手動にするようにしたわ 印刷部分だけPDFにして置いておくとか マクロは印刷プロパティを出すところまで。 それ以上はトラブルの原因になるからやめとき そもそも紙にこだわるのが非効率で 電子化するのが本来の理想ではある プリンタのプロパティでプリンタの設定自体を片面印刷にしておくと片面印刷になりますか? >>186 CSVをWorkbook.Openで開くのが駄目。 OpenステートメントとかFileSystemObject使う方が良い。 >>197 そんなの職場や利用目的によりけりだから コントロールパネルからプリンタのプロパティで片面印刷に設定したんだけど片面印刷オンリーになりません どうしたらいいですか? 特定の文字列のみ文字色を変えたいんだけど、 置換を使うと指定した文字列を含むセルに入力されている全ての文字の色が変わってしまう… 現状では数百数千セルある中から文字列を選択して文字色変更を繰り返す、という辛い作業を続けているのですが この様に、指定した文字列だけの色を変更って出来ませんか? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる