1 名前:デフォルトの名無しさん [2017/11/08(水) 11:26:30.13 ID:+KUB1/9hd.net] スレ立ての際は一行目に !extend:checked:vvvvv:1000:512 と入れてスレ立てして下さい ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※関連スレ VBAなんでも質問スレ Part2 mevius.2ch.net/test/read.cgi/tech/1432173164/ Access VBA 質問スレ Part1 mevius.2ch.net/test/read.cgi/tech/1328536426/ Excel総合相談所 126 https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/ ※前スレ Excel VBA 質問スレ Part50 mevius.2ch.net/test/read.cgi/tech/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
760 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 08:20:51.65 ID:upqov7ALa.net] >>737 運用の話までは管轄外じゃね あとは自分で考えりゃいいよ
761 名前:デフォルトの名無しさん [2017/12/27(水) 09:27:07.83 ID:58xyBvha0.net] >>721 とか>>732 とかのコードで意味わかんないところがいくつかある (コードが間違ってるって意味じゃなくて、こっちの知識が足りなくて理解が追い付かないって意味です) まず>>721 は なんでコレクションを宣言してるのか? しかもなぜ宣言したのに使わないのか? 変数eは何のために使ってるのか? ファイルのパスをsplitで分割してるけど、 ファイル名だったらinstrrevで\を探したほうが話が早いんじゃないか? 等々 >>732 は ループの中でdim使うのは大丈夫なの? 複数回宣言したらエラーになりそう 後、一番知りたいのが If strFolder <> "." And strFolder <> ".." Then これ、どういう意味なのか解説をお願いしたい (書いてる人たちにケチつけてるんじゃなくて、本当に分らない事を教えて欲しいだけです) どなたか教えてください、よろしくお願いします
762 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 09:45:06.41 ID:fOQst04i0.net] >>740 コマンドプロンプトで cd .. って打ってみたら判る c:>test>test1> cd .. 親ディレクトリに移動する。つまり親フォルダの事 「.」 は「.」 カレントフォルダの事
763 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 10:22:00.13 ID:fOQst04i0.net] 寝ぼけて書いてたからめちゃくちゃだな^^; c:\test\test1> というフォルダがあったとしてそこで c:\test\test1>cd .. と打てば c:\test> と親ディレクトリ(フォルダ)に移動する
764 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 10:45:52.46 ID:90Vjgj1Fa.net] >>740 ループ内でDimしてもエラーにはならないよ その都度メモリが割り当てられるだけじゃないかな フォルダ名の"."と".."は相対パスじゃなかったかな 一個上と二個上の親フォルダだったと思う 間違ってるかもしれないから調べてね
765 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 10:46:46.56 ID:90Vjgj1Fa.net] あ、間違ってたw .がカレントフォルダで..がひとつ上の親フォルダね すんませんな
766 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 10:48:05.37 ID:90Vjgj1Fa.net] あとsplitの問題に関しては読みやすさとか書きやすさじゃね 俺もよくやる 楽だからね
767 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 12:51:59.50 ID:u0gTyM9V0.net] beforeStr = "あ12月い" afterStr = beforeStr.sub(/\d\d月/) do |matched| month = matched.to_i + 1 month = 1 if month == 13 sprintf("%02d", month) end puts afterStr #=> あ01い Ruby で、文字列を置換した。 こういう処理は、Ruby が良い。 PowerShell でも作ってみたが、簡単な置換方法がなかった。 置換時に、コールバック関数を取れる、sub のような関数が無かった わかりやすいように質問者が投稿する時は、名前欄に、717 と入れてくれ
768 名前:744 mailto:sage [2017/12/27(水) 12:58:13.04 ID:u0gTyM9V0.net] 間違っていたので、修正した beforeStr = "あ12月い" afterStr = beforeStr.sub(/(\d\d)月/) do |matched| month = $1.to_i + 1 month = 1 if month == 13 sprintf("%02d", month) + '月' end puts afterStr #=> あ01月い
769 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 13:38:32.87 ID:lJNZ7xHQ0.net] VBA勉強し始めて間もない時に組んだマクロに replaceという名前のプロシージャを作りました そのことはすっかり忘れてたのですが、最近になってそのマクロを手直しする必要があって その中でReplace関数を使おうとしたらエラーが出る おかしいなと思い調べてみたらSub replace() を発見 プロシージャの名前を変えたら大丈夫かと思いきやなぜかどこかに何かが残っているようでエラーがでる 一旦そのモジュールを解放したらReplace関数は使えるようにはなりました しかし、なぜかReplaceと打ってもreplaceとなる replaceと打ってもそのままreplace replaceをReplace関数と認識してくれてはいるものの、どこかに何かが残っている 他のブックでは起きないのでまぁそれほど支障はないものの、もし分かる方いらっしゃったら どうすればいいか教えてください
770 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 13:47:19.08 ID:fCTi8N3va.net] Replaceで変数宣言してみ
771 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 15:20:29.55 ID:DW1nj5RcM.net] >>748 大文字小文字は、現在開いてるコード全体で統一されてしまうからな。 変数でもプロシャージャでもいいから、定義し直すと内部で覚えてる大文字小文字が上書きされるぽ この仕様のせいで、他人の書いたブック開いたまま修正保存するといつのまにか変わってたりする。 するとWinMergeとかでDIFFしたときにイラッ 独り言でした
772 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 18:43:06.62 ID:8Kp24ZKYM.net] プロシージャ外に書いたオブジェクトの寿命はいつまでなのでしょうか? グローバル変数にオブジェクトを保存してそれをfunctionで返すシングルトンオブジェクトを作ったのですが、 プログラムが一度終了して再度起動した際もオブジェクトが残っており、ゴミデータでエラーが起きています。 一度ファイルを全て閉じるまでは残るものなのでしょうか?
773 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 18:55:21.26 ID:K6GLaCg8a.net] >>751 グローバル変数ならエラーで止まるかブックが生きてる限りは生きてるんじゃね
774 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 19:03:21.38 ID:4eyrVwN9H.net] >>751 あとEndで止めると死ぬ
775 名前:デフォルトの名無しさん [2017/12/27(水) 20:23:28.17 ID:ry3vSREld.net] >>753 End なあ、せめて Class_Terminate()して欲しかった
776 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 20:40:54.92 ID:RyDVOJzS0.net] >>734 です。 officeの再インストール試してみましたが 不具合解消せずでした・・・・無念 幸い既存マクロは動くので、新規作成と実行は 他のPCでやることにしました。 不具合はExcelだけで、Accessでは特に問題ありませんでした。 一応ご報告まで。
777 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 20:55:52.26 ID:K6GLaCg8a.net] >>754 てか、マクロ終わったら初期化すりゃよくね? できない仕様なの?
778 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 21:08:27.21 ID:CubzVxEy0.net] >>756 マクロ終わったら誰が初期化するん?
779 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 23:24:01.01 ID:TIhBPqs40.net] >>755 マクロの記録から操作を記録すると 標準モジュール作成される?
780 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 23:29:35.39 ID:0b7v1yOK0.net] >>753 Endだとなにがまずいのでしょうか
781 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 02:02:28.11 ID:uSnaEunu0.net] >>759 Globalで保持していると想定していた変数がいつのまにかクリアされていて想定外の動作をおこし痛い目にあったことがあります。 調べてみたら、エラー発生時またはEnd通過時にGlobal変数の寿命が尽きるようで、、 それ以来、Global変数もEnd Statementも避けています。 記憶が必要な場合は、Cell値やValidation値またはDocumentProperty等を使うようになりました。
782 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 02:45:31.50 ID:m7DZbaKUH.net] VBA初心者です 2つのセルがイコールになるように別のセルの値を変化させるというVBAソルバを作成したいのですが、エラーばかりで全く進みません・・・ 現在は7行目から10行目まで構文エラーが出ています。 どなたかご教
783 名前:願います・・・ Sub Solver() i = 1 Do Until i = 313 '------------------------------------------- Application.DisplayAlerts = False SolverOk SetCell:="K" & i, ByChange:="J" & i SolverAdd cellRef:=Range("K1:K313"), _ Relation:=2, _ FormulaText:=Range("L1:L313"), _ Application.DisplayAlerts = True '--------------------------------------------- SolverSolve i = i + 1 Loop End Sub [] [ここ壊れてます]
784 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 05:04:43.84 ID:BF7frMSQ0.net] >>749 >>750 ありがとうございました。
785 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 08:06:18.47 ID:VokPBxMja.net] >>757 マクロ終わったらオブジェクト破棄するんじゃダメなのかと言うことだが まあダメな使用なんだろうけど
786 名前:デフォルトの名無しさん [2017/12/28(木) 08:14:47.46 ID:ezpQ52SId.net] イミディエイトウィンドウにあるオブジェクトのことだよね
787 名前:デフォルトの名無しさん mailto:sage [2017/12/28(木) 17:26:42.52 ID:GeC01ME+0.net] >>751 ,760 そもそもプログラムが終了ってどういう事をさしてる? ホントにプログラムが終了すれば、すべての変数の内容は失われるよ たんに実行するコードが無くなっただけではプログラムは終了していない Endはプログラムを終了させるけど、エラー出ただけでは終了するとは限らない デバッグで再実行や変数見たりできるのはプログラムは中断したけど終了してないから
788 名前:753 mailto:sage [2017/12/28(木) 23:10:38.77 ID:lWNTZScR0.net] >>758 753です。 マクロの記録そのものができないのです。 記録しようとすると「マクロの記録ができませんでした」と エラーが出てしまいます。 新規作成と編集が全て制限されているようです。 セキュリティは「すべて有効」で設定しており、 そこでの問題は無いと思うのですが・・・・
789 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 04:00:07.55 ID:G/qmS2zk0.net] >>761 "_" は次の行をつなげるためにつけたのだろうけど Application.DisplayAlearts = True の前の行にも "_" が付いているから 何か貼り付け忘れか、間違って削除してしまったものがあるのでは
790 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 04:08:47.98 ID:G/qmS2zk0.net] セキュリティーレベル一番高いとダメなんじゃね
791 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 07:22:34.45 ID:b/Z/hzqU0.net] >>734 あー、昔そんな事象に当たったことあるよ 原因は同じかどうかは分からんけど 俺の場合とんでもなく深い階層のフォルダに置いてたら VBEのシートモジュールが青く表示されてコードが作成できなくなった そのファイル、とりあえず浅い階層のフォルダや どこかのサーバに置いているなら クライアント側にコピーして内容確認出来る?
792 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 08:53:00.31 ID:JNsjSKSN0.net] 732、753です 皆様レスありがとうございます。 作成の不具合は、全くの新規Bookでも起こります。 既存マクロの場合は、コードの表示と実行は行えますが 編集が制限されています。 問題が発生してから、他のPCで新規作成したマクロを 該当PCで実行しようとしましたが、それはコードの表示すら できませんでした。ファイルサーバー経由とかではなく デスクトップ上に置いて実行しても同じです。 Accessでは特に問題ないので、VBAそのものではなく、 Excel単体の何かだとは思うのですが、皆目見当がつきませぬ。
793 名前:デフォルトの名無しさん mailto:sage [2017/12/29(金) 10:57:41.44 ID:MXSoKJ1y0.net] >>767 >>761 です 一部コピペして使ったので何か消してしまったのかもしれません・・・ 確認してみます、ありがとうございます。
794 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 12:22:18.46 ID:cGzM6pFo0.net] CreateObject("System.Collections.ArrayList")ってやったら .NETのArrayListがVBAで使えてしまったんですが これ隠し機能とかじゃなくて正式に使っていいんですよね?
795 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 13:25:09.57 ID:dKM8JRI70.net] 前にも話題に上がったけど .NETのほんの一部はVBAからも使える リファレンスにも書いてあったような気がする 他で代替できるのでArrayListをわざわざ使うメリットはないということで その
796 名前:ときは終わったと思う [] [ここ壊れてます]
797 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:32:35.43 ID:cGzM6pFo0.net] >>773 参考にします。ありがとうございました
798 名前:デフォルトの名無しさん mailto:sage [2017/12/30(土) 15:33:00.15 ID:xXJ5T9Ia0.net] >>772 .Net Frameworkの機能でコンストラクタに引数を渡す必要のないものは使えるらしい >>773 ArrayListは各種メソッドが揃ってるからコレクションより使いやすいんじゃね?キーを使わないなら ただ遅いのがたまに傷
799 名前:デフォルトの名無しさん [2017/12/31(日) 01:12:29.94 ID:z2hgHR3O8] フォルダ(C:\print)内の複数のPDFファイル(ファイル名不規則)を、各々1頁目のみ連続印刷したいと思ってます。 VBAやコマンドライン初心者ですが、ネットで調べたところPDF xchange viewerのコマンドラインで1頁目のみ連続印刷する方法はわかりました。 しかし、下記のように各ファイルについてファイル名もパスも記載しないとダメなようでした。 PDFXCview.exe /print:pages=1 C:\print\123.pdf C:\print\abc.pdf VBAの方では下記のように*.pdfでファイル名必要なく連続印刷できますが頁指定の仕方が分かりません。 /tをとれば印刷ダイアログ開いて頁指定できますが、いちいち全てのファイルについて指定しないといけないので余り意味がありません。 何か良い方法がないでしょうか。 Sub pdf印刷() Dim strPath As String Dim strFilename As String Dim myShell As Object Set myShell = CreateObject("WScript.Shell") strPath = "C:\print" strFilename = Dir(strPath & "\*.pdf") Do While strFilename <> "" myShell.Run ("AcroRd32 /t " & strPath & "\" & strFilename) strFilename = Dir Loop Set myShell = Nothing End Sub
800 名前:デフォルトの名無しさん [2017/12/31(日) 08:34:16.68 ID:5sx4VZ0k0.net] >>774 Windows APIだって使えるんだぞ?
801 名前:デフォルトの名無しさん [2017/12/31(日) 08:58:37.79 ID:TXRnAgcd0.net] VBAの保存方法について バックアップどうしてますか? VBAのマクロだと戻る釦聞かないし、バグって復旧するとマクロの個所全部消えちゃうので2つくらいのバックアップを別ファイルでとってあるんですけど皆さんはどうしてますか? まだ素人なので思ったのと違う処理になって戻せなくなることがしょっちゅうあるので バックアップは大事
802 名前:775 [2017/12/31(日) 09:02:17.31 ID:TXRnAgcd0.net] >>778 戻る釦ってまるい矢印の奴ね
803 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 09:09:26.61 ID:PwPBZUwb0.net] >>778 バージョン管理システム入れてないなら同じになるでしょ。 俺も同じくでファイル名_Ver nnn.xlsmと言うかたちで3世代別フォルダに保存してるけど (時たま忘れたりする^^;
804 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 09:49:30.47 ID:aMifsa1T0.net] マクロ有りエクセルファイル自体にデータを入れて運用するのと、 データは別エクセルファイルにしてマクロ有りエクセルファイルでデータ入りエクセルファイルを操作するのと、 どっちがメンテナンスしやすい作り方だろうか? いつも悩んでしまう
805 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 09:52:29.70 ID:35C6Q16O0.net] アドインマクロにしましょう
806 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:06:17.25 ID:fsRyV04Q0.net] マクロのバージョン管理ってどうやってます? インポートファイルを分けすぎると不便なのでshareFanction見たいなインポートファイルに使いそうな関数全部入れてますが、初心者なもので開発中に関数の引数や戻り値を変えたくなるような場面が多々あり 今までのshareFanctionと互換性が保てなくなりますが、引数と戻り値を修正した関数以外でバグを潰したような関数は最新を使用したいです。 今はコピペで対応してますが
807 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:27:58.03 ID:rNrttlhS0.net] 個人なのか仕事なのか書かないと有効なレスがつかないのではないかな
808 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:34:47.18 ID:fsRyV04Q0.net] >>784 個人です 個人で開発、個人で使用
809 名前:ナす [] [ここ壊れてます]
810 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:36:51.05 ID:rNrttlhS0.net] >>785 ならGithubとSourceTreeで快適にできるんじゃないの? 俺も全然高度な使いこなしできてないけど楽ちんだ
811 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:55:17.97 ID:fsRyV04Q0.net] >>786 ありがとうございます ざっとみた感じソースファイルのバージョン管理はできそうですが、 例えばサーバーあるいはローカルマシン上にそのshareFanctionを使用している分散しておいてある場合、 それぞれのマクロを調べて更新したいファイルを選択、修正版マクロを適用する、 みたいな使い方ってできるんですかね?
812 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 11:57:21.02 ID:fsRyV04Q0.net] >>787 >>例えばサーバーあるいはローカルマシン上にそのshareFanctionを使用している分散しておいてある場合、 修正 shareFanctionを使用しているファイルが
813 名前:デフォルトの名無しさん [2017/12/31(日) 12:53:47.48 ID:TXRnAgcd0.net] ヴァージョンって仕事じゃないからいつから何時まででUP履歴にしたらいいかわからなん 機能変更したら必ずかもしれないけど、個人用だとやりながら変更しているからバージョン数が半端ないことになる。
814 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:10:06.47 ID:sYPUhsnja.net] バージョン管理は大変だよな インストーラーみたいなのつくってどうにかしようとしてるがうまく行くかわからん
815 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:25:39.05 ID:pVPyHW7p0.net] >>789 > バージョン数が半端ないことになる。 問題ないでしょ
816 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:31:04.61 ID:fsRyV04Q0.net] >>790 専用のソフトがなければ1sheetをマクロ関数管理用にして各関数内にver x.y.z(x変更で互換性無し、y変更で互換性あり、z変更は互換性ありバグ修正みたいにして) モジュールをインポートしたファイルをオープン時に、イベント検知で所定の管理ファイルを検索、新しいバージョンがあれば自動で今までのモジュールを解放、y,zバージョンが最新のファイルをインポート みたいにすれば実現可能そうですが結構手間がかかりそうで…
817 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 13:56:42.14 ID:hllNi94Va.net] マクロで書けよ。 バージョン管理。 セキュリティが低下するけどな。
818 名前:デフォルトの名無しさん [2017/12/31(日) 18:06:59.07 ID:nOUozIFo0.net] そもそも論として、たかがマクロでバージョン管理が必要になるような力作()作るなよw キミたちは一体エクセルマクロで何を築こうとしておるのかねw
819 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 18:13:51.04 ID:2b4EaTgg0.net] 仕事でVBA扱ってると色々な理由から小さいマクロでもバージョン管理が必要になってくる。
820 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 19:27:51.32 ID:rNrttlhS0.net] >>794 内容がぐちゃぐちゃになったら困るものにはバージョン管理が必要さ 力作()でなくても再構築はかったるいからな
821 名前:デフォルトの名無しさん [2017/12/31(日) 19:58:25.49 ID:nOUozIFo0.net] >>796 力作()じゃないのにぐちゃぐちゃになるってどんだけ当てずっぽうにマクロ書いてんだよw
822 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:00:31.71 ID:pVPyHW7p0.net] 社内に展開するとかでサポートが必要ならバージョン管理ぐらいは必須だろ >>794 は無知すぎ
823 名前:デフォルトの名無しさん [2017/12/31(日) 20:24:53.68 ID:nOUozIFo0.net] >>798 確かにおまえらの考える事は見当もつかんけどなw 別にいいや無能思考に明るくならなくてもw
824 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:28:42.31 ID:1PdKj8Yj0.net] またメゾット君か。
825 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:42:44.41 ID:rRjJbr8wx.net] メゾット君って雰囲気ですぐ分かるよね
826 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 20:54:32.08 ID:KnonKKai0.net] OLDフォルダにファイル名の後に日付つけたファイルをコピーしてる
827 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 21:20:00.26 ID:A+5By6dM0.net] ていうかバイナリファイルをバージョン管理システムに登録したところで 単なる時系列バックアップにしかならんうえに シートを更新しただけでバージョンが変わるから意味ないのでは
828 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 22:37:10.58 ID:rNrttlhS0.net] 力作2.0
829 名前:デフォルトの名無しさん [2017/12/31(日) 22:50:02.43 ID:InzisC8s0.net] 悩みはみんな一緒なんだね。俺はバージョンアップに悩んでアドイン化したが これはこれで悩ましいところがあるんだな。シートを初期化(つまりClearとかClearContents)する のにもよーく考えないと結構危ない。アドインはどのブックでも実行出来てしまうからPCに疎いヤツが使うのも考えると 別の方法を考えた方が良いんだろうかとか考えてる。
830 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 22:55:00.56 ID:rNrttlhS0.net] >>805 アドインてxlamのこと? だったらそのシートは一切使っちゃダメだよ プログラムモジュールだけの存在にするべき
831 名前:デフォルトの名無しさん [2017/12/31(日) 23:12:43.15 ID:InzisC8s0.net] >>806 そりゃ分かってるての。ブックを指定する時は「ActiveWorkBook」とするしかない(決めつけはよくないが) からよーく考えてコードを書かないと危ない場合もあるって話。使う連中の9割はマクロどころかシート関数も 知らないような連中なんだから。
832 名前:デフォルトの名無しさん mailto:sage [2017/12/31(日) 23:41:30.90 ID:rNrttlhS0.net] >>807 ・処理をスタートするFunction や Subはアドイン側にはない。当該Book側にある ・そのFunction や Subがアドイン側の機能を使う だとするとアドイン側に「ActiveworkBook」なんて書く必要はなくて、処理対象のSheetやRangeを 引数で受け取るだけになると思うんだがね
833 名前:デフォルトの名無しさん [2017/12/31(日) 23:52:05.59 ID:InzisC8s0.net] >>808 作業するBookはxlsxなんだよ。マクロはxlms側に書いてある。 なんでこうしたかというと、仕事柄、ブックは地方自治体に提出する場合があるから。 何の事かわからないだろうからもうちょっと書くと、測量データの野帳なんだよ。
834 名前:806 [2017/12/31(日) 23:53:24.81 ID:InzisC8s0.net] xlmsじゃねえや、xlamだな。
835 名前:デフォルトの名無しさん [2018/01/01(月) 04:27:25.57 ID:WDGj6QXoH.net] >>809 マクロ有効ブックから マクロ無効ブックを開いて処理して保存して閉じる という方法も有ると思う
836 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 09:37:05.14 ID:hnfikatx0.net] 自動処理したいなら>>811 だろうし、操作者が開いて何かしたいならメニューに追加しとけばいいだけだと思う >>809 は無知なのかちょっと頭固いんだろうな
837 名前:デフォルトの名無しさん [2018/01/01(月) 13:40:19.53 ID:iV2QIiO7H.net] >>812 作業ブック側にコード書けないんだよ。知ったかすんなよボケ
838 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 13:55:03.62 ID:7v1CUCWaM.net] >>813 作業ブックにコードなんか要らんだろ w 知らないなら黙ってろ てか、アドインでメニュー追加なんて基本中の基本だと思うが toshimana.hatenablog.com/entry/2014/01/26/204938
839 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 14:25:45.74 ID:7yffOGmB0.net] 知らないことを素直に知らないと言いなさい
840 名前: mailto:sage [2018/01/01(月) 14:27:07.60 ID:tZ/lpIQo0.net] 今年はいい年になるかなw
841 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 14:29:26.10 ID:UomJiKNZ0.net] >>814 Workbook_AddinUninstall てのは知らなかったな。 Workbook_Open するのと効果は違うんだろうか?
842 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 14:54:13.21 ID:ixsE+qrMx.net] またメゾット君が暴れてるな あの馬鹿が出入りするようになってから荒れすぎ
843 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 15:45:18.49 ID:bzNinO0Ma.net] >>817 よく考えろよ
844 名前:デフォルトの名無しさん mailto:sage [2018/01/01(月) 16:11:19.12 ID:PLRWaMeF0.net] >>819 おっと、 Workbook_AddinInstallを Workbook_AddinUninstallと書き間違えた
845 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 09:36:26.90 ID:nA397GZea.net] >>820 だとしてもだ イベントの言葉の意味そのままだよ よく考えろよ
846 名前:デフォルトの名無しさん mailto:sage [2018/01/02(火) 12:29:02.41 ID:MKa2S+Tjd.net] >>821 「対象のアドインを参照設定しているブックを開いた」というイベントを想定してた そうじゃないのね
847 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 10:57:08.56 ID:rhTFyGx/0.net] >>806 そんなことはない。 設定値を保存するためのiniファイルの代わりにするとか、テンプレートの代わりにするとか、使い道は沢山ある。
848 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 11:46:24.84 ID:ZpYRfYyG0.net] アドインにするにしてもなんにしても運用がしっかりされてないと意味がない ファイル名やシート名程度が保証されてないならマクロ化なんて諦めろ
849 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 11:59:35.70 ID:Uz65NhYa0.net] >>823 設定値を保存するのはやめたほうが良いと思うな。 バージョンアップしたときに設定値がリセットされてしまうとか、エクセルバグの巻き添えでブック破損の危険性がある。 できるだけアドインは読み取り専用で運用するべきだと思う。 過去に内部シートに保存するように作って問題が起きたので、バージョンアップ時にxmlにコンバートさせた事があるわ
850 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 12:49:50.09 ID:lLEkaf6s0.net] お前のバグを根拠にされてもなぁ
851 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 14:45:49.49 ID:hfgsKA7ma.net] まあ、設定は外出しにするのが普通に安全策じゃね? xlamのシートは明らかに利用してほしくないっていう思いが伝わる作りな訳だから
852 名前:デフォルトの名無しさん mailto:sage [2018/01/03(水) 15:32:51.77 ID:00k1dN96d.net] 利用者が不用意にセルデータをクリアしてそのままセーブしても自覚すらしないかも
853 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 05:46:13.89 ID:UuI+tM4Q0.net] 質問よろしくお願いします。 A列,B列,C列,D列 Aa,111,bbb,20 Bb,111,aaa,30 Aa,222,bbb,10 Bb,111,aaa,10 Aa,111,bbb,15 上記の様な表を下記の様にしたいです。 A列,B列,C列,D列 Aa,111,bbb,35 Aa,222,bbb,10 Bb,111,aaa,40 A,B,C列の値が一致したらD列を加算して行を削除するという処理です。データは約1000行程です。
854 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 06:37:20.49 ID:MFccPkO20.net] 1000行程度ならSUMIFSとかでできるんじゃないの
855 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 06:55:39.59 ID:IcyEu6L/M.net] >>829 要件によるけどそういうビューを作ればいいんじゃね? create view V as ( select A列,B列,C列,sum(D列) as D列 from 表 group by A列,B列,C列 )
856 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 06:57:20.78 ID:IcyEu6L/M.net] すまん、寝ぼけててSQLスレと勘違いしてた... >>831 はなしで
857 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 07:39:39.14 ID:IGCyfMcU0.net] >>829 見るからにデータベース向けの案件 集計するキーとなる列が左端一列、その右に合計対象の数値列という2列形式なら データタブにある統合でできるんだが
858 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 08:01:11.56 ID:5mprgbRzp.net] >>830 すみません説明不足でした。 キー項目が1000種類以上あり、毎回CSVから読み込んでから処理をする為、事前にWorkSheet関数を作っておくのが難しい状況です。 何か手はありますか?
859 名前:デフォルトの名無しさん mailto:sage [2018/01/04(木) 10:15:47.38 ID:fF+rBx/60.net] データベース系のデータは素直にデータベースソフトで管理しようよ・・・。 アクセスでやればマウス
860 名前:操作だけで終わる様な問題だよ。 [] [ここ壊れてます]