[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 16:42 / Filesize : 257 KB / Number-of Response : 1014
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part79



1 名前:デフォルトの名無しさん mailto:sage [2023/01/28(土) 11:46:47.21 ID:mBQ16TA8.net]
↑同じ内容を3行貼り付けること

ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part77
https://mevius.5ch.net/test/read.cgi/tech/1658009255/
Excel VBA 質問スレ Part78
https://mevius.5ch.net/test/read.cgi/tech/1667104996/

-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

892 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 10:54:52.74 ID:m0qa5Enf.net]
昨年はまではchatgptなんて話題無かったもんな。

893 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 12:37:59.39 ID:ZGM1evgE.net]
Excelって凄い有能だよね

894 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 16:07:55.58 ID:m0qa5Enf.net]
だから世界中で売れとる

895 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 16:13:25.70 ID:QEfHRB4s.net]
ツールはどちらも有用

896 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 18:19:29.54 ID:gjFqswYh.net]
道具なんて使う人次第
包丁だって人を殺せるし、Excelも使い方を間違えれば生産性を落として会社を殺す

897 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 20:00:04.71 ID:m0qa5Enf.net]
あまりExcelをヨイショすると、またGoogleスプレッドシート厨が暴れだすからうざったい。

898 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 21:12:44.25 ID:S1i8GJCU.net]
GSSは所詮真似ソフトだから比較にならん

899 名前:デフォルトの名無しさん mailto:sage [2023/05/23(火) 22:14:41.12 ID:3uLTyIP1.net]
>>876
w 嫌いじゃ無いw

900 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 08:34:36.23 ID:sVnHWppj.net]
半年くらいだったら自分の書いたコードの意味が一発ではわからない。
チャット GPT にリファクタリングをたのめるのだろうか



901 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 09:44:03.20 ID:TKPmz7Nx.net]
書けるけど読めないは最悪で将来役立たず認定されるから早めに現状から抜け出す手はずを整えたほうがいい

902 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 10:33:00.51 ID:sVnHWppj.net]
>>891
おっしゃる通りなんだが、クセというのはなかなか治らないものだから 自分だけで見ていても問題点がわからない。それでチャット GPT に見せれば 厳しく指摘してくれるんじゃないかと。
もちろん全部 鵜呑みにするわけじゃなくて、言ってみれば アイディア出しのツール として使えないか っていうことなんだけど。
どうかな?

903 名前:デフォルトの名無しさん [2023/05/24(水) 11:19:15.40 ID:1HEEtapb.net]
またへんなのでてきたw

904 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 11:25:33.56 ID:TKPmz7Nx.net]
>>892
その指摘を理解できるのって話じゃない?
このスレはChatGPTに話を振るやつ多いけどそもそも自分の書いたコードにしろ他人が書いたコードにしろ読めない奴が
リファクタリング以前に何をしたいコードかわからないならどんな指摘もらってもそれが正しいものかわからないだろ?
その時にはどうするのって話理解できてる?

905 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 11:51:37.14 ID:sVnHWppj.net]
>>894
半年経ったら一発で読めないだけで、何がやりたかったのか全体的なイメージは記憶に残っているし、時間をかければ各行の役割は理解できる。それを一発ですらすらわかるようなコードにリファクタリングできないかというだけの話

906 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 11:58:12.96 ID:TLmwN/Fk.net]
ChatGPTに聞きまくって作りまくってるしコメントも残してあるからメンテも超楽
もうvbaは十分だからpythonを学ぶべ

907 名前:デフォルトの名無しさん [2023/05/24(水) 12:08:05.38 ID:1HEEtapb.net]
>>895
最初にそうやって書いておけばいいだけの話では

908 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 12:57:02.51 ID:gQe9IGSI.net]
性格わるいひとがおおいこと

909 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 13:02:25.38 ID:TKPmz7Nx.net]
>>895
コード1行1行がわからないとかおかしくないか?書いてあることそのままだろ?
ブロック単位のコードが読めないならコメントなりでやってることを自分が読める言葉で書いておけばよくね

910 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 14:25:50.78 ID:lcK3sBWk.net]
Excelに長けてるやつなんて大抵は性悪だろ。



911 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 17:46:17.42 ID:TxgMbCbW.net]
オリジナルな変数名や関数名使ってる人は
自分の書いたコード読めなくなってそうな気がする

912 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 19:17:06.63 ID:1HEEtapb.net]
他人が考えたコードをコピペするだけの奴の方が内容覚えてないだろう

913 名前:デフォルトの名無しさん [2023/05/24(水) 20:06:55.55 ID:MlnLG95A.net]
任された仕事が出来なかったら怒られるんだったら仕事をどんどん引き受けようとは思わない、スキル開発なんて出来るはずがないですよ

914 名前:デフォルトの名無しさん [2023/05/24(水) 20:10:33.59 ID:kc6C7Km2.net]
>>903
馬鹿には無理なだけ

915 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 20:23:24.53 ID:l+gVJ33A.net]
情けないw きんたま付いてンのか
ま、そういう連中が多ければ多いほど、それを乗り越えられる奴が人より伸びて出世して率いていける
それでも、昔と違って上役個人のその場その時の感情に任せた怒りは害悪だと広く知らしめられているご時世だから
怒られるってのは随分減ってる 注意されるのが嫌だと言うなら、それは自分でじぶんの成長を止めているという事
上司上長だって見込みの無い奴にいちいち注意とか指導とかしたくない したところで変わらないと承知してる
注意されたり指導されたりしたら、見込まれてると信じて自分を成長させていく努力を重ねろ
そんなのは嫌だと言うのなら、そのままペーペーの下っ端の人生をまったりと送れ

916 名前:デフォルトの名無しさん [2023/05/24(水) 21:19:13.86 ID:ATYAg5h+.net]
本当にChatGPTがそこまで有能ならば
VBAのプログラマーであるお前らはもう用済みだろうな
SEとChatGPTだけで開発出来ることになる

917 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 21:19:58.19 ID:e8mgmyMR.net]
ウィンドウ枠の固定の固定を行列両方でやる方法はありますか?
手作業でやった場合は
B7を選択し、表示 → ウィンドウ枠の固定 → → ウィンドウ枠の固定 の順でクリックすると十字線で固定になります。

これをVBAでやる方法を知りたいです。
' 起点となるセル(B7)を選択
Range("B7").Select

' 行と列を同時に固定
With ActiveWindow
.SplitColumn = 1
.SplitRow = 6
End With
ActiveWindow.FreezePanes = True
これだと上手くいきません。

918 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 21:43:25.82 ID:lDhUSoZp.net]
>>907
その真ん中は要る?

>>909
こういう書き方はどう?

    Sub a()
  If b Then
Cells(1, 1).Value = 1
  Else
Cells(1, 1).Value = 2
  End If
    End Sub

919 名前:デフォルトの名無しさん mailto:sage [2023/05/24(水) 22:42:40.02 ID:EnBFiGu7.net]
>>907
ThisWorkbook.Worksheets("Sheet1").Activate
Range("B7").Select
ActiveWindow.FreezePanes = False
ActiveWindow.FreezePanes = True

920 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 00:15:01.22 ID:7ru6gnb4.net]
>>906
つか最近はVBAの案件が激減りでしょ。
クラウドワークスやココナラにたまに案件出る程度。
しかもクソ以下な報酬だし。



921 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 00:33:58.70 ID:htkuBd+g.net]
Microsoft365Copilotってどこまでできるようになるのかね?
VBAコーディングのアシスタントもしてくれるのかな?

922 名前:デフォルトの名無しさん [2023/05/25(木) 08:17:33.66 ID:r97jG93E.net]
>>904
初めてやる事、勉強しないとわからない事をミスや間違いなくやれって言われても無理だなぁ

923 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 08:42:09.76 ID:qOk7CQOp.net]
職場内の指示ならサポートする人がいるでしょ
自分で取ってきた仕事ならそれをわかってて受ける奴がバカでしょ

924 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 10:05:56.11 ID:wW289g5U.net]
>>911
オープンソースのChatGPTでも、適切に質問すればちゃんと動く完全なVBAを書いてくれる
それ以下の性能になる可能性は低い

925 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 10:25:12.16 ID:lc7HulhJ.net]
いやむしろChatGPT並のaiを搭載出来ると思えん
毛の生えたイルカ

926 名前: []
[ここ壊れてます]

927 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 10:38:34.50 ID:bvQ+M2zu.net]
今のAIなんて性能は横並びで、違いは学習データの多さだけ
言い換えれば回線の太さとハードディスクの容量で決まるようなもん
最初はポンコツでもMSの持つリソースを考えればChatGPTなんかすぐに追い抜くのは容易に想像できる

928 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 11:45:58.08 ID:7ru6gnb4.net]
昨年までchatgptなんて話題になかった。今年からだよね確か?

929 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 12:30:54.27 ID:BeRM8aLP.net]
chatgptにTTRPGのGMやらせたのは去年だった気がする。

930 名前:デフォルトの名無しさん [2023/05/25(木) 12:40:15.38 ID:yD7GMOxx.net]
>>910
そうなのかな?
VBAのPGだけで飯食ってる訳じゃないから分からないけど
ChatGPTがそこまで有能だと言うのであれば
いずれはプログラマー全員が干されることになるだろうな



931 名前:デフォルトの名無しさん [2023/05/25(木) 12:43:50.88 ID:+8NgUpWi.net]
>>919
そんなことを思うのは無能のレベルの低い人だぞ

932 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 14:06:21.16 ID:7X+fG8I/.net]
>>919
確かにchatGPTはコードを書けるけど
なんの責任も取らないchatGPTが書いたコードを
何も知らないままコピーで使うってのは流石にできないだろ

人間がそれなりにコードのこと知っている(=そのコードの責任を取る)からこそ
コピーが出来るんじゃないか?

933 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 14:24:44.64 ID:wW289g5U.net]
今のAIは、結果が正しいかどうか判断できないもんな
そこまでできるようになったら人間の仕事がいよいよなくなる

934 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 15:33:05.20 ID:7ru6gnb4.net]
chatgptに試しにコードを頼んだら、変なことやり出す時あるから恐ろしいわな。

935 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 15:40:09.70 ID:WTdNLwFH.net]
普通に考えて間違っていることなのに正しいと言い張って悪いことする人間もいる

936 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 16:38:38.94 ID:9aT2N2S/.net]
まともなコードをかける人だけがChatGPTを貶しなさい

937 名前:デフォルトの名無しさん [2023/05/25(木) 18:25:35.42 ID:IdJA6u5F.net]
chat GTPがコードを書いてくれても使う側の人間がシート名を変えたり、シートを並び替えたり、列や行を挿入したりするから無意味だゾ

938 名前:デフォルトの名無しさん [2023/05/25(木) 19:12:38.82 ID:uTGbx62u.net]
>>910
クソの値段は?

939 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 19:14:42.03 ID:YbSVtxjN.net]
プライスレス

940 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 19:25:43.50 ID:ka2xCALB.net]
外資系化学メーカーだけど日本の企業からExcelが消えることは自分が定年するまではないわ
AIが発達するならそれに任せるしそこまでいかないなら今まで通り自分で作ってメンテする
ただGPTは十分つかえるし凄い



941 名前:デフォルトの名無しさん [2023/05/25(木) 19:48:46.62 ID:WHjTQOsf.net]
無能な人はありがたがる

942 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 20:14:18.01 ID:qOk7CQOp.net]
自分が作りたいものはほぼ過去作のコードコピーして手直しするような感じだからそういう人にはあまり必要ないかもしれないが
まるまる使うわけでなくひな形としてサンプルコード生成してもらうような使い方ならありかもね

943 名前:デフォルトの名無しさん [2023/05/25(木) 22:01:48.16 ID:IdJA6u5F.net]
非表示のシートにコピーしようとする
あるいはアドレスで参照しようとする時にエラーを出す条件はなんですか?

944 名前:デフォルトの名無しさん mailto:sage [2023/05/25(木) 22:38:06.47 ID:OGK1w7li.net]
エラーの内容は?

945 名前:デフォルトの名無しさん [2023/05/25(木) 22:41:38.89 ID:IdJA6u5F.net]
>>933
1004ですね😅

946 名前:デフォルトの名無しさん mailto:sage [2023/05/26(金) 04:05:15.06 ID:t8aTcQe9.net]
クラウドワークスのVBA案件が少ないのは分かるが、単価はクソじゃないだろ。

947 名前:デフォルトの名無しさん mailto:sage [2023/05/27(土) 10:51:17.80 ID:Or9ZKlcs.net]
コードが長いのでプロシージャを分けたいのですが変数は
グローバル変数を使って変数をひとまとめにするのと
再度プロシージャで同じように定義しなおすのはどちらが一般的ですか?

948 名前:デフォルトの名無しさん mailto:sage [2023/05/27(土) 11:22:44.57 ID:9h/NVUyr.net]
全体の一部だけ修正するなら好きにしろじゃね
関数Aを関数Bと関数Cに分割するならPublic(モジュールのPrivate)変数にしたほうが直しやすいし
関数Aを関数A自体は残して中のコードを関数Bと関数Cに振り分けるなら
Public変数だけでなく関数Aのローカル変数を関数Bと関数Cの引数に渡すこともできる

949 名前:デフォルトの名無しさん [2023/05/27(土) 12:40:25.19 ID:cGvl/d1n.net]
>>936
自分で考えるのが一般的じゃね

950 名前:デフォルトの名無しさん mailto:sage [2023/05/27(土) 13:14:17.41 ID:RPl8pCqm.net]
>>936
作業用の捨て変数のことなら、毎回いちいち宣言しないとバグの元
グローバルにすると、例えばループの中から別プロシージャを呼んだ時に破綻する



951 名前:デフォルトの名無しさん mailto:sage [2023/05/27(土) 13:38:59.73 ID:pJTb6Vhd.net]
>>936
グローバルかローカルかは変数の役割と範囲次第だな。
グローバル変数は便利だけど多用しすぎると
面倒臭くなるから注意な。
ローカル変数は見通し良くなるから使えるときは使うべき。値の受け渡しが必要なら引数使うのが普通だよ。
とはいえ、プロジェクトの性質や要求によって
適切な方法は変わるから自分で考えてみてくれ。

952 名前:デフォルトの名無しさん mailto:sage [2023/05/27(土) 15:12:20.44 ID:Or9ZKlcs.net]
ありがとうございます。
プロシージャ毎に1つずつ実行するときと
複数順に実行する場合があるので
引数だと面倒だなと思ったのでグローバルにしようか悩んでいました。

自分の能力ではコードが増えたときにグローバル変数だと混乱するのではやめておきます。

953 名前:デフォルトの名無しさん [2023/05/27(土) 22:23:40.36 ID:wfFOuEPe.net]
ミスや不具合のあった時にあーだこーだ言われるのだから日本にはAI開発なんて不可能

954 名前:デフォルトの名無しさん [2023/05/27(土) 23:08:54.80 ID:rPvuWgFx.net]
それは極論

955 名前:デフォルトの名無しさん mailto:sage [2023/05/28(日) 16:42:51.88 ID:pV4wEcmO.net]
日本企業は権力に弱いからあーだこーだ言われてしまうと萎縮してしまい海外AIのような思い切ったプロジェクトを立ち上げる事ができないという事は言える
これは各省庁の圧力を封殺して国が主導して補助金まで出すようになれば事態は一変するかもしれない

956 名前:デフォルトの名無しさん mailto:sage [2023/05/28(日) 17:53:17.80 ID:aECve9cA.net]
他人のカネをあてにしたプロジェクトで成功した試しが無いだろ
ビンボこそがパッションとモチベと成し遂げる意思と工夫とプランニングに富む基礎と成る 
食えるか食えないかギリギリのビンボがな

957 名前:デフォルトの名無しさん [2023/05/28(日) 18:05:09.72 ID:8TEHyhBs.net]
課題が多いのは事実だがそれを乗り越える技術のある人もいることに期待する

958 名前:デフォルトの名無しさん mailto:sage [2023/05/28(日) 20:48:41.35 ID:aECve9cA.net]
もっと言うと、デカく成った企業は保身に走る、突っ走る デカく成りつつある企業もそれに倣って保身に走る
それは中の人が(俺の代でポシャる訳にはいかない)と、無難な路線しか認めないから 挑戦の二文字は倉庫に仕舞い込んでる
それに加えて昨今のHDブーム 何でもかんでもホールディングスにすりゃいいと安易に設立して内部留保に励む
前世紀末のバブル崩壊をまざまざと経験した世代は特に臆病風を吹かしまくる チキン・ハート症候群だ(現役だけに大迷惑)

その点、昨今の怖いもの知らずのZ世代なら、悪事を働く方向とは真逆のベクトルで突っ走ってくれたら
とんでもないイノベーションを起こす可能性を持ち合わせている ウィリアムやスティーブのようなのが出て来る可能性も
まあ、願望だけだが  それでも、ひとりかふたり出てくれればゴロっと変わる可能性だってあるんだから、希望の光は消えない

959 名前:デフォルトの名無しさん mailto:sage [2023/05/28(日) 21:45:16.66 ID:FAxVwT0p.net]
Application.OnTime TimeValue("12:00:00")

オンタイムメソッドのコードのテスト方法って何かありますか?
動くかの確認に毎回時間を合わせてテストするのが大変なので質問しました

960 名前:デフォルトの名無しさん [2023/05/28(日) 21:50:34.02 ID:0FRQEohw.net]
すみません
ここまでのコードはうまくいくのですがこの先の以下のコードを実行すると400や1004のエラーメッセージが表示されます
しかしながら望み通りの場所に名前をつけて保存してくれます
なんのエラーが出ているのでしょうか?



Sheets("リスト").Copy

ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\TEST1.xlsx"

ActiveWorkbook.Close

End Sub

リスト シートをコピーして新しいブックとして開き、名前をつけて同じ場所に保存という事がしたいです。



961 名前:デフォルトの名無しさん [2023/05/28(日) 22:12:18.01 ID:0FRQEohw.net]
おそらくやっと原因が判明しました
OneDriveのせいでした

962 名前:デフォルトの名無しさん mailto:sage [2023/05/28(日) 22:50:47.30 ID:v/IHwhGn.net]
2~30年後ぐらいにAIの分野の遅れが致命的になり慌ててAI庁とか作りそう

963 名前:デフォルトの名無しさん [2023/05/28(日) 23:40:07.55 ID:O8C+AHmT.net]
デジタル庁があるやん

964 名前:デフォルトの名無しさん [2023/05/29(月) 02:32:31.75 ID:A0J6rQWV.net]
金目当ての仕事しかしないで中身スカスカだろうけど

965 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 06:53:52.00 ID:6VgnbzRd.net]
>>946
今の日本は現場が下に見られるから
技術のある人は権力や役職者にいいように利用されて終わることが多い

966 名前:デフォルトの名無しさん [2023/05/29(月) 10:00:53.79 ID:XEr4TBXw.net]
みんな、エッチ団結しようよ!

967 名前:デフォルトの名無しさん [2023/05/29(月) 15:43:26.34 ID:sEjgVYtC.net]
>>954
多いだけで全員ではない

968 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 16:43:45.59 ID:617wK6FV.net]
やっぱりめちゃくちゃ丁寧にコメント残して変数の宣言をめんどくてもしっかりしとくと後で手直しが楽だな…
社内サーバーが変更になって他部署のマクロがあちこちエラーでバタつきまくってるけど俺の作ったvbaちゃん達は少しメンテしただけでオールオッケー
ヘルプが来たけど他人の作ったマクロ全然わかんね

969 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 17:02:10.90 ID:4Pg0mNi+.net]
ウデを持ってるなら、そんな環境からとっととおサラバするのがいい
サヨナラされてようやく気付く企業も多く成るべき
それでもそこにしがみ付きたいなら、技術だけじゃなくて知恵も蓄えないと
どうやってその邪魔な上役・役職者を失脚させて、徐々にでもじぶんの地位を上げるか とか
学歴・派閥・職歴えtc、ひとは誰しも欠点を持ち合わせてンだし、そこをトコトン突っ突かないと
ブツブツ文句垂れてるだけじゃなにごとも変わらない 諦めたらそこで終わりなのも事実だし

970 名前:デフォルトの名無しさん [2023/05/29(月) 21:13:35.07 ID:PjfX8r01.net]
一つだけお聞きしたいのですが、VBAを作成したとしても利用者がシート名を変更したり、シートを削除したり、シートを追加したり、並び替えたりしたら自動化や効率化のやりようがないですよね?
オブジェクトが存在しないとか並び替えられていたらインデックスで指定するのが無理とかそう言う事になりますよね?
VBAは決められた手順通りに定められたメゾットを実行する物であって、ブックがめちゃくちゃだと実行しようがないですよね?



971 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 21:20:52.62 ID:4q9o84pD.net]
シートをオブジェクト名で処理すればシート名変更・並び替え・シート追加はどうでも良くなる
シート削除対策は予備シートを他のブックにでも入れておいて本シートの存在判定後に予備シートからコピーすれば良い

972 名前:デフォルトの名無しさん [2023/05/29(月) 21:26:22.38 ID:PjfX8r01.net]
>>960
なるほど

ちなみに一番新しいシートのオブジェクトを指定する方法はあるでしょうか?
ブックにあるオブジェクトを探して一番大きい数字のオブジェクトを指定できるなら助かるのですが
worksheet.countやworksheet.count - 1の様な事をオブジェクトで行いたいです

973 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 21:38:44.22 ID:5rIVitSK.net]
もちろんできる

974 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 21:43:07.69 ID:4q9o84pD.net]
普通は新しいシートを作る位置でその手のコントロールをすると思うけどね

975 名前:デフォルトの名無しさん [2023/05/29(月) 21:45:22.79 ID:PjfX8r01.net]
>>963
並び替えられると動作しなくなるのでどうにか不変もので出来ないのかなと思いました
連番?で数字が増える事だけが頼りです

976 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 21:53:57.15 ID:4q9o84pD.net]
>>964
新しいシートを作るのがコード自身ならコントロールできるでしょ

あと、並び替え程度で動かなくなるとか
シートを作られただけで動かなるコードなんてのは脆弱すぎるので
先ずはその点の改良をしたほうがいい

977 名前:デフォルトの名無しさん mailto:sage [2023/05/29(月) 22:02:48.61 ID:nq5ttQ99.net]
そんなんで駄目になるなら初めからガチガチにロックしてこっちが想定した操作以外できなくしてしまったほうが早い気がする

978 名前:デフォルトの名無しさん [2023/05/30(火) 02:48:24.27 ID:ztJvp+qD.net]
VBAでどんなコードを書いてもユーザーが勝手に変更したら動かなくなるよ

979 名前:デフォルトの名無しさん [2023/05/30(火) 06:48:55.03 ID:D1ASN+X8.net]
>>965
やりたい事は一番新しいシート(最新のシート)とその前に作成されたシート(古いバージョンの様な)を比較して一致しないセル(変更のあったセル)に色を塗ると言う事がしたいです
一番新しいシートはマクロを実行する度に複製されます
私は一番新しいシートに記入してマクロを実行すると直前のシートと比較して色を塗る所まで出来ました
しかし利用者の方が一番新しいシートに記入される方ばかりではないと言う事にも気がつきました。
なのでどこのシートでマクロを実行しようとも一番新しいシートとその直前のシートで比較するマクロを組みたいです。

980 名前:デフォルトの名無しさん mailto:sage [2023/05/30(火) 06:57:07.62 ID:T5vzeTOi.net]
どこかにシートの作成履歴を保存しておくしかないのでは?



981 名前:デフォルトの名無しさん [2023/05/30(火) 07:58:55.38 ID:IcFRt183.net]
ブックを開きその時点での一番新しいシートに記入する
マクロのボタンを押す
シートを複製する
一つ前のバージョンのシートと比較して変更のあったセルに色を塗る

と言う事がしたいです
つまりマクロを実行するシートというのは常に新しく複製されたシートです
理想は常に新しく複製されたシートのオブジェクト名を取得してその前のバージョンのシートと必ず比較できるマクロが組みたいです

982 名前:デフォルトの名無しさん [2023/05/30(火) 08:01:10.86 ID:IcFRt183.net]
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11256025046

ここに書かれているCode nameが最大のシートを探すと言うのが答えになりそうなのですが私には分かりませんでした

983 名前:デフォルトの名無しさん mailto:sage [2023/05/30(火) 08:29:21.45 ID:qMHj8iFj.net]
そのブックの構成がよくわからないな
その古いシートへユーザーが書き込むってのはミスなの?そのシートに書き込む必要がある状態なの?

因みに、codenameを取得して番号から最新シートを把握というのはちょっと微妙な気がする
何故ならシートのオブジェクト名もシート名も
そのEXCELブックが立ち上がった時の一番若い番号に振られるから
つまり、オブジェクト名に歯抜けの番号があればその歯抜け番号が最新番号になる、、はず

そんなのより各シートにインデックス番号を
シート内の固定場所に
振っていくほうが手っ取り早いんじゃないの?
若しくは管理用シートを別に用意するとか手段はいくらでもある

984 名前:デフォルトの名無しさん [2023/05/30(火) 08:29:25.24 ID:IcFRt183.net]
なんとなくわかって来ました
初期値のworksheet(シート名?オブジェクト?) < ブックの中のシートのコードネーム
がthenならそのCode nameを変数に入れたらいい
そしてそのCode nameのシート名を取得して変数に入れればいい
と言う事ですね

985 名前:デフォルトの名無しさん [2023/05/30(火) 08:49:28.89 ID:IcFRt183.net]
>>972
本当にありがとうございます
私はvbaの初心者で必ず最新のシートが選択される様にする
と言うだけでこの通り全く分からない状態です

そんなのより各シートにインデックス番号を
シート内の固定場所に
振っていくほうが手っ取り早いんじゃないの?
若しくは管理用シートを別に用意するとか手段はいくらでもある

私もインデックスを固定して操作する方が確実だとは思うのですがシートの並び替えだけを禁止すると言う理解でよろしいでしょうか?

986 名前:デフォルトの名無しさん mailto:sage [2023/05/30(火) 09:26:21.94 ID:qMHj8iFj.net]
>>974
いや、ちょっと勘違いしているね
平易に言うと、自分で作った通し番号を各シートの固定場所に記載するってこと。
シートの並び順はもはや関係なくなる

具体的には、一番最初のシートには使ってないセルに「1」を振る
次に新しいシートを作るときは
for each 変数名 in thisworkbook.worksheets
でブック内全シートの番号を降った場所を検索して
一番大きな番号を取得
その取得した番号の次の番号を新しいシートに振る

これでいつでも最新シートを更新出来るようになる

987 名前:デフォルトの名無しさん [2023/05/30(火) 10:50:25.84 ID:IcFRt183.net]
>>975
なるほど!
わかりやすい😭

988 名前:デフォルトの名無しさん mailto:sage [2023/05/30(火) 17:51:07.23 ID:1Ly+sIKy.net]
こないだの奴だろ? わかったつもりでいても、実装には難儀する気がする
そもそも要件と、それをまかなう仕様がなんかまちがってる気がしてならない
古いSheetと新しいSheetで違う値のセルをハイライト
で、その新しいSheetは明日には古いSheetに成るんじゃないのか?ハイライトする意味は?
ひとつのブックをみんなで寄ってたかって編集してるのか? で、制作物は最終的にひとつなのか大量にあるのか
古くなったSheetはもう不要なのか、いつか参照するのか ブック内でどんどんSheetが増えていくのか その頻度は

書ける範囲で業種とか業務とかの概略を書いた方が結果的に近道な気がする 気がするだけだけど
その用途ならこうした方がいいぞ というアドバイスも出てきそうだし

989 名前:デフォルトの名無しさん mailto:sage [2023/05/30(火) 18:47:46.87 ID:rtVxM/0K.net]
適当な人間が使ってるものを深く考えずに何とかしようとしてるだけだから仕方なくね
ぶっちゃけこんな感じなるなら別のブックにマクロいれて
ファイル名、変更前シート、変更後シート
あたりを入力して変更後シートの変更箇所に色塗りするってマクロ作った方がいいんじゃねと思うわ
そもそも勝手にシート増やされたとしてそのシートが番号振ってあるシートだったら破綻するだろ?

990 名前:デフォルトの名無しさん [2023/05/30(火) 19:50:15.30 ID:D1ASN+X8.net]
>>978

シートを手動でコピーされるかあるいは新しいシートを挿入されたら終わり
確かにその通りでした
やはり浅はかでした

どうにもシートの保護などは禁止らしく、他のブックで比較するのも禁止らしいです
では最終手段として一番新しいシートを一番右に、その前のバージョンのシートをその左に手動で並べて右と左で比較するコードをと提案しましたが必要を理解してもらえませんでした



991 名前:デフォルトの名無しさん [2023/05/30(火) 19:57:03.41 ID:D1ASN+X8.net]
個人的にはマクロが登録されているボタンを押して作成している限りにおいては正しい動作が行われるで満足なのでセルに数字を入力してシートを指定する案で終わります

992 名前:デフォルトの名無しさん mailto:sage [2023/05/30(火) 20:02:47.81 ID:8KdzSu0t.net]
誰もマクロを触れない部署で全く新しいアプローチでツールを作ってくれと言われて
今月の残業時間40Hだが全部vbaに費やしてる
まだ試作だけど部長に糞誉められた
いやでも会心の出来かも
デバックエラーが絶対起きないようにあらゆる想定をしてユーザーフォームのボタンに込めた






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<257KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef