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


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

Excel VBA 質問スレ Part77



1 名前:デフォルトの名無しさん mailto:sage [2022/07/17(日) 07:07:35.59 ID:tS4zKdphH.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること

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

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

※前スレ
Excel VBA 質問スレ Part76
https://mevius.5ch.net/test/read.cgi/tech/1651339421/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

820 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 19:10:02.45 ID:YSVEcn1gd.net]
>>815
元のデータが何によるかで違うけど「月 as Integer(Long)」でいいのではと思う
仮に元のデータが日付でもGetBirthStone(Month(日付))で済む
月を渡すようなケースがありえないなら日付を渡して関数内でMonthを使うでもいい

821 名前:デフォルトの名無しさん (ワッチョイ 435f-pIDl) [[ここ壊れてます] .net]
月だけでいい
特定の日付に依らずある月の誕生石を知りたい場合に
意味のないDate値用意しなきゃいけなくなるから可読性が落ちる

>>817
誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
祝日みたいに毎年変動するものとか、組合せの数が多すぎる要素ならシート管理の方が扱いやすいと思うけど

822 名前:デフォルトの名無しさん (ワッチョイ d3da-pIDl) mailto:sage [[ここ壊れてます] .net]
>>815
その程度のこと自分で決められんようでは時間かかってしょうがないだろ

823 名前:デフォルトの名無しさん (ワッチョイ 6f8c-SQdC) mailto:sage [[ここ壊れてます] .net]
>>815
Function getBirthStone(日付 As Date)
Application.Volatile True
getBirthStone = WorksheetFunction.Choose(Month(日付), "ガーネット", "アメシスト", "アクアマリン", "ダイヤモンド", "エメラルド", "ムーンストーン、真珠", "ルビー", "ペリドット", "サファイア", "オパール、トルマリン", "トパーズ", "トルコ石、タンザナイト")
End Function

こんなかんじ?

824 名前:デフォルトの名無しさん [2022/10/06(木) 22:32:10.00 ID:wENRazb+d.net]
>>823
ありがとうございます。

825 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:47:25.99 ID:HCQdlFdq0.net]
>>823
わざわざワークシート関数を呼ばなくてもVBAにもChoose関数あるよ
https://learn.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/choose-function

826 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 23:06:53.10 ID:gOgPUvPm0.net]
ほんとだw てへ

827 名前:800 mailto:sage [2022/10/09(日) 17:09:18.30 ID:Kilq6kjS0.net]
>>803
ラップ関数作る解決方法最高です。
頭固かったです。
他にも導入できそうなところが見つかり助かりました。
感謝です。

828 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 21:48:05.32 ID:P58+Ol8v0.net]
>誕生石みたいに改訂されたことがニュースになるくらい固定されてる内容ならコードにベタ打ちでいいと思う
>>823を見ての通りこの手は表記ゆれが問題になる事が多いから
可能な限り外部データにした方がいい



829 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 13:53:54.44 ID:uAPvvwer0.net]
インプットボックスで入力される値が数字かどうか判断するコードってどう書けばいい?

830 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:15:03.61 ID:fEDU7G4fd.net]
・符号(+-)を許すか
・ドット(小数点)を許すか
・カンマ(桁区切り)
を踏まえて文字の妥当性チェックすればいいんじゃないの

831 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:17:40.55 ID:fEDU7G4fd.net]
あと自分はWorksheetFunction使うの好きじゃないけど
WorksheetFunction.IsNumber
でもいいかもね

832 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:26:37.29 ID:H84z/pNR0.net]
全角は?漢数字は?ローマ数字は?欧米式の桁区切りは?
入力検査は考え始めるとキリがない分野の一つだぜ

833 名前:デフォルトの名無しさん [2022/10/11(火) 15:13:10.17 ID:DoWcBI1l0.net]
>>829
IsNumericじゃダメなの?

834 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 17:02:04.45 ID:uAPvvwer0.net]
>>833
さんきゅーそれだ
てかVariant型が数値かどうか調べられるんだな~
書き方解ったらvartypeとかtypenameでも行けそうな気がする
ちょい試してみよ

835 名前:デフォルトの名無しさん [2022/10/11(火) 18:13:13.59 ID:DoWcBI1l0.net]
>>834
語弊があるといけないから言っておくと、
IsNumericはあくまで数値として扱える値(数値に変換出来る値)かどうかを判定するよ。
だからString型でも”123”みたいのはTrueを返すからそこは注意してね。

836 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:16:52.08 ID:hb9m45MO0.net]
考慮点はまだあるぞ
IsNumericって
"\3"とか"3e3"とか"&habc"とかもTrueだぜ

837 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 08:33:18.55 ID:FAaW2+wFd.net]
じゃ足し算する関数を別に作ってノーエラーで戻ってきたら数値

Sub Main()
 '全角数字も数字と見なす
 If Suujikana(StrConv(InputBox("入力せぇ"), vbNarrow)) Then
  MsgBox "数字だよ"
 Else
  MsgBox "数字じゃないよ"
 End If
End Sub


Function Suujikana(moji As Long) As Boolean
 On Error GoTo er
 moji = moji + moji
 Suujikana = True
 Exit Function
er:
 Suujikana = False
End Function

838 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 08:35:48.26 ID:FAaW2+wFd.net]
あ、これじゃだめかえらーでるあ



839 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 08:38:00.09 ID:FAaW2+wFd.net]
このやろ、variantにしたら+で文字列つくりやがって
こんのやろぉ

840 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 08:39:59.19 ID:FAaW2+wFd.net]
これでいい?らめ?

Sub Main()
 '全角数字も数字と見なす
 If Suujikana(StrConv(InputBox("入力せぇ"), vbNarrow)) Then
  MsgBox "数字だよ"
 Else
  MsgBox "数字じゃないよ"
 End If
End Sub


Function Suujikana(moji As Variant) As Boolean
 On Error GoTo er
 moji = moji * moji
 Suujikana = True
 Exit Function
er:
 Suujikana = False
End Function

841 名前:デフォルトの名無しさん [2022/10/12(水) 09:33:08.65 ID:JFXNmWRt0.net]
>>836
まぁその辺は数値として受け取れるとも言えるからね。
その辺除外したいなら最初に“¥”や“e”や“&h”が含まれていたら数値ではないって分岐入れとけばいいだけじゃないの?

842 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 09:45:17.75 ID:05zETGAlM.net]
>>840
自分も同じこと考えたけど型の制約が緩いと面倒くさそうなので思考を放棄した、よく頑張ったな

843 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 10:05:45.44 ID:05zETGAlM.net]
そういえば昔型はあるのとないのではどっちが良いのかって記事を見たことあるな
結局型がないと論理エラーが出ないように型をちゃんと理解する必要があるって書いてた

844 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 10:15:23.77 ID:FnwlmZOz0.net]
kgとkmは単純に足し算しても意味ないからな

845 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 04:03:11.23 ID:j3UF+2500.net]
別にVBA使わなくてもワークシート関数でできるじゃんって意見どう思う?

846 名前:デフォルトの名無しさん [2022/10/13(木) 04:08:37.62 ID:QthptHxba.net]
やりたいようにやれ

847 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 05:43:31.20 ID:l6HSpiwg0.net]
>>845
内容によるけどまあワークシート関数でできるならその方がいいだろうな

848 名前:デフォルトの名無しさん [2022/10/13(木) 06:51:28.60 ID:R3JkkIAh0.net]
A1に入力されているものが消えたらB1以降の入力セルデータが右から左に自動で繰り上がってくるようにしたいのですがこれで大丈夫ですか?

これをA20くらいまで適用したいんですけど教えて貰えませんか...?

Private Sub Worksheet_Change(ByVal
Target As Range)
If Target.Address = Range("A1").Address
And IsEmpty(Target) Then
Application.EnableEvents = False
lastrow = Cells (Rows.Count,
"A").End(xIUp).Row
Range("B1:F1"&lastrow).Copy
Range("A1").PasteSpecial xIPasteValues
Range ("A"&lastrow).ClearContents
Application.EnableEvents = True
End If
End Sub



849 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 11:53:03.67 ID:Ue05WQwm0.net]
キーボード操作でマクロ作って呼べばいいんじゃね

850 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 13:03:11.83 ID:8suwpN2kr.net]
"B1:F"&lastrow
下から4行目は何の処理かな
g列以降にデータがないなら、a列削除でもいけそう

851 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 13:57:54.49 ID:UFLyO0SD0.net]
xIUp >> xlUp >> xlLeft
xIPaste >> xlPaste

excel だから xl だよ
本から手入力したのかな

852 名前:デフォルトの名無しさん mailto:sage [2022/10/13(木) 15:04:44.40 ID:xeSsgHCJ0.net]
文字列にしてTrimして
右から一文字づつAscでコード調べて数字判別してる

853 名前:デフォルトの名無しさん [2022/10/15(土) 01:10:39.87 ID:zmWNo0nm0.net]
そういや何気にVBAの中でCallByName使うとJavaScript 使えるらしいね。
使ったことないけど。

854 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 01:25:23.69 ID:eU4yePu40.net]
>>853
どういうこと? どうやるの?

855 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 07:21:27.16 ID:tw/asOzR0.net]
>>853
文字列で言語書いて実行するのってどうも好きじゃないな
そもそも有効な場面ってあるんだろうか
bougyuusonnin.seesaa.net/article/191171013.html

>>854
調べなよ・・・

856 名前:デフォルトの名無しさん [2022/10/15(土) 09:05:24.46 ID:zmWNo0nm0.net]
>>855
さあ?
メソッドチェーンが使えるくらい?
まぁ無理して使うもんでもないような。
現にJavascript知っててもVBAに混ぜて
使うような状況なんてなったことないし、
大体記述がめんどいし。

857 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 09:07:30.39 ID:tw/asOzR0.net]
>>856
ありがとう
やっぱりほとんど無いよね。

858 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 03:31:09.39 ID:IoSf1xr/0.net]
メリットはネイティブの手段でJSONがパースできるようになる事なんだけどVBAで必要になることはほとんどないか
ちなみに似たような方法でHtmlFileからIEのjavascriptを呼ぶ方法もある



859 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 05:54:19.77 ID:zEVEZIxw0.net]
ネイティブ?

860 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 06:00:43.85 ID:q8mBJvHk0.net]
予め言語側で用意されてるってことじゃない

861 名前:デフォルトの名無しさん [2022/10/16(日) 06:58:42.73 ID:4eBUdjNxM.net]
正規表現をRegExpオブジェクトで利用することはネイティブですか?

862 名前:デフォルトの名無しさん [2022/10/16(日) 08:27:49.05 ID:6FfxZTeW0.net]
正規表現をRegExpオブジェクトで利用したらハゲますよ

863 名前:デフォルトの名無しさん mailto:sage [2022/10/16(日) 23:46:46.75 ID:n3hO69PQ0.net]
性器のことしか考えてないから禿げるんじゃね

864 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 02:28:59.55 ID:Foj5GBltM.net]
正規表現はexcelapiを使うのが楽

865 名前:デフォルトの名無しさん [2022/10/17(月) 17:47:22.14 ID:LwSzkOCXr.net]
すみません、質問させてください
range内の空白セルを除いた部分を一気に配列に入れる方法ってありますか?
例えばA1、B2、A3、B3に1が入っていて、Range(Cells(1,1) ,Cells(2,2))を選んでいる状態で配列ArrにArr(1,1)=1、Arr(1,2)=1のみを入れる。ということです
「Range(Cells(1,1) ,Cells(2,2))を選んでいる状態」というのはFunctionで関数を作ったときにこの範囲を選んでいるという意味です
CurrentRegionを使ってもA2、B2の空白まで配列に入ってきてしまって困ってます

866 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 17:53:55.90 ID:c98RAUt6M.net]
selectionでforeach回せばできる気がするけどな

867 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 18:05:29.40 ID:PbBQX3S8M.net]
一気にやるなら判定文をスピルで一気に適用するか

868 名前:デフォルトの名無しさん [2022/10/17(月) 18:22:32.67 ID:KXCnFpZrr.net]
すみません、先程の質問の意図はvba 100本ノックの以下の問題を解いていましたhttps://excel-ubara.com/vba100/VBA100_062.html
最初に範囲内を配列にすべて入れてdictionaryで出す方法を考えたんですけど、範囲のところがA1:C5とかならいいのですが、A:Cだと、すべての行まで配列に入ってしまって、それの行すべて処理するようになってしまったので、数字が範囲内の最終行までを配列に入れることができれば処理速度も変わるので、そういう方法があればという質問でした



869 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 18:56:02.19 ID:eqEJLsQnM.net]
答えも解説も書いてあるんだからそれ見ろよ

870 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 20:25:02.38 ID:sP2+Ci5U0.net]
>>864
へーそんなのあるのか

871 名前:デフォルトの名無しさん [2022/10/17(月) 21:15:18.56 ID:8otnrSal0.net]
作成依頼です。

G列に空白セルがあった場合、その空白セルの隣のセルに入力されている値をクリアにする。

というコードを作成いただけないでしょうか。

よろしくお願いします。

872 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:12:03.14 ID:ISXu5HOG0.net]
いやです

873 名前:デフォルトの名無しさん [2022/10/17(月) 22:18:07.47 ID:+NOpXqIT0.net]
待て、これは孔明の罠だ

874 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:23:49.67 ID:AIOop8Dz0.net]
F、G、H列を無条件で消せばいいのね

875 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:24:49.52 ID:tLF3dHHy0.net]
隣とはどっちだ
あまりにも指示が不明瞭でバカが書いたとしか思えない文章
スルーで決定

876 名前:デフォルトの名無しさん [2022/10/17(月) 22:28:51.88 ID:dYe0p6CB0.net]
>>871
マジレスするとここは質問スレであり
作成要請スレではありません。

作る方法等を聞けば教えてくれる人もいるかも知れませんが、作ってくれと丸投げにした場合、
その見返りを要求されるか一蹴されるかして終わるのが関の山です。

自分でそう言った趣旨のスレを探すか立てるかした方が賢明と思われます。

877 名前:デフォルトの名無しさん mailto:sage [2022/10/17(月) 22:46:52.95 ID:/WpPTN/JH.net]
>>871
welcome to https://mevius.5ch.net/test/read.cgi/tech/1434079972/

878 名前:デフォルトの名無しさん [2022/10/17(月) 23:47:38.34 ID:yX88xE7Ya.net]
>>874
消す方だったか、"クリア"って書くのかと思ったぜ



879 名前:デフォルトの名無しさん [2022/10/17(月) 23:49:43.92 ID:+NOpXqIT0.net]
>>878
甘い
空(そら)と白(しろ)で合わせて空白まで読み取らないと

880 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 05:15:15.98 ID:s0SrGZFEa.net]
4000件くらいのデータのExcelファイルから
A. 特定の数十件の社員データを除いたデータファイル
B. Aで除いた数十件の社員のデータのみのファイル
を作成しなければなりません

元のファイルを2つFileCopyして
・Aから対象社員のデータをUINONメソッドでRangeに格納して一括削除
・Bから非対象社員のデータをUINONメソッドでRangeに格納して一括削除

もしくは

・Aから対象社員データをAutoFillterしてBに貼り付け
→Aから対象社員データ削除

を考えてますがどちらが速いでしょう
元の書式を活かしたExcelファイルが必要なので
CSV出力やExcelファイルにデータのみ転記することはできません

881 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 05:41:41.52 ID:o16XpPR+M.net]
何度も繰り返し行なう作業とか面倒な作業ならVBA使うメリットもあるけど、その程度ならシートコピーとフィルターでさっさと手作業で済ませた方が手っ取り早いのでは?

882 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 07:10:04.49 ID:v8qBslO70.net]
>>880
画面の書き換えだけ止めとけば、たぶん、どの方法でも大差ないと思うよ
Unionは重いから、削除は一括じゃない方がいいかも
気になるならベンチマークとってみれば?

883 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 07:14:36.77 ID:NY9qjYA4d.net]
>>876
>コード書き込みや作成依頼もOK
1をよくみような

884 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 08:05:51.17 ID:YCyRiw4bM.net]
個人的にはコード作ってとか書かれてたら困ってるんす金くださいと言われてるくらい嫌なので余計に作らないわ~
書くのは勝手だけど

885 名前:デフォルトの名無しさん [2022/10/18(火) 08:46:11.19 ID:q+c/s7kpM.net]
誰もお前には頼んでないのに、俺は作らない宣言しちゃう人って自意識過剰すぎません?

886 名前:デフォルトの名無しさん (ワッチョイ 2bcd-7iBv) mailto:sage [[ここ壊れてます] .net]
>>871
1:30で書けたけど・・・
これぐらい書くのにみんなどれぐらい時間かかるもんなの?

Sub foo()
最終行 = Cells(Rows.Count, 7).End(xlUp).Row
For i = 1 To 最終行
If Cells(i, 7) = "" Then
Cells(i, 6) = ""
Cells(i, 8) = ""
End If
Next
End Sub

887 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 09:45:31.08 ID:345TXlIrM.net]
>>880
回答待つより実際に作って比較した方が早くない?

888 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 10:14:58.17 ID:UuGhYYcHd.net]
>>887
いい回答だと思う
自分でやればわかることを他人に聞くのってほんとバカなのかなと思う



889 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 10:42:22.37 ID:fjjhfMGv0.net]
>>871
Ruby で作ってみた。
未入力の列はnil となるので、a, c も未入力となる

require 'csv'

input_text = <<TEXT
,a
b,b
,c
TEXT

output_text = String.new

CSV.filter( input_text, output_text ) { |row|
row[ 1 ] = nil unless row[ 0 ] # nil の時
}

print output_text

出力
,
b,b
,

890 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 11:09:36.18 ID:NJQ5BOf00.net]
>>885
で、誰もお前に意見聞きたいとか頼んでないのにどうしてそんな自意識過剰な反応してんの?

891 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 13:16:40.55 ID:O7d9QRYR0.net]
>>889
見づら!
なにこのクソ言語

892 名前:デフォルトの名無しさん [2022/10/18(火) 14:44:23.15 ID:5fCnmsLA0.net]
>>886
2~3分だな90分もかからんよ

893 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 19:46:45.52 ID:LJ6jaE7r0.net]
ちょうど今日別々のシートの範囲Unionして二次元配列にしようと思ったらエラーだったな
同一シートじゃないと無理らしいね
二次元配列同士を結合したからまあいいけど

894 名前:デフォルトの名無しさん mailto:sage [2022/10/18(火) 21:13:25.02 ID:bD7mk4M6d.net]
>>886
Nextのズレが気になって気になって今日は眠れないわ

895 名前:デフォルトの名無しさん [2022/10/18(火) 23:15:32.25 ID:fRTdwDaSa.net]
変数に漢字w = 0

896 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 15:06:47.27 ID:XsVwav6s0.net]
マウスで範囲指定した複数のセルから値を受け取ったり書き込んだりする方法はありますですか?

"A1:C3" と指定した状態でそこに有る数値をVba側で受け取って一つ一つ何かをしたあと、
また今の指定した範囲のセルに書き込むとかです。

一つのセルであれば、ActiveCell.Value とすればいいですよね。

897 名前:デフォルトの名無しさん [2022/10/19(水) 15:45:02.14 ID:RzDK/9cQa.net]
日本語が不自由な人多いな

898 名前:デフォルトの名無しさん mailto:sage [2022/10/19(水) 16:40:42.06 ID:kjFQ3fMO0.net]
>>896
Application.Selection.Valueで出し入れできる
基本的に2次元配列を操作することになるが、
単一のセルだと配列にならないとか
複数の領域が選択されていたときにどうするかとか
細かいところを考えることになる



899 名前:906 mailto:sage [2022/10/19(水) 20:54:47.64 ID:wavRu5Wg0.net]
>>898
大変重要なキーワードを提示いただきありがとうございます。

とりあえずの目的は達成できました。

また、これで詳しい内容をググりに行けますです。

900 名前:906 mailto:sage [2022/10/19(水) 22:12:45.50 ID:wavRu5Wg0.net]
ここに書いてありました
ttps://detail-infomation.com/vba-selection/

901 名前:デフォルトの名無しさん (ササクッテロラ Sp0f-HPGf) [2022/10/20(木) 01:06:22.80 ID:Rvw6iN3vp.net]
>>886
>>889
ありがとうございます。

902 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 06:04:53.46 ID:I98JYgIT0.net]
外出先でもスマホからマクロ実行したいからGASでプログラムやろうかと思ってる

903 名前:デフォルトの名無しさん (ワッチョイ 9f42-M5DG) mailto:sage [2022/10/20(木) 07:03:58.77 ID:D7MvRF2u0.net]
勝手にやればええやん

904 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 09:47:53.53 ID:gU8aHBR/M.net]
GASいいよね
Googleスプレッドシートは単一のブックを皆で共有してつつき回すのが前提だから、
Excel VBAでよくあるようにデータとマクロ用ブックを分けて部署別の複数のデータファイルをVBAでまとめて集計するみたいなことをする必要性が低くて、
そもそもGASを書かなくて済むケースが多かったりする
外部APIとのデータ連携が必要なときくらいだな

905 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 10:11:29.65 ID:od/5Btdhd.net]
ここで広げる話じゃねぇ

906 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 11:53:08.75 ID:jbEEQ7MN0.net]
GASってスマホからも動かせるの?

907 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 12:40:27.98 ID:gU8aHBR/M.net]
もちろん

908 名前:デフォルトの名無しさん [2022/10/20(木) 17:44:35.99 ID:zIYHKHDh0.net]
>>904
それってWeb版EXCELと何が違うの?



909 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 17:58:16.85 ID:wfln4dMhM.net]
もちろん違わないよ
全く同じことがWeb版Excelにも言える
まあExcelにしちゃうとせっかく共有してても結局ローカルコピーを作るバカが必ず出てきて邪魔になりがちだから、間違った使い方をするのが難しいという点では好ましいかもね

910 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 18:01:51.16 ID:rx8Gs0n5M.net]
それはWEB版を使いにくいと思ってる人が居るってことでは?

911 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 23:20:50.15 ID:I98JYgIT0.net]
試しにAndroidスマホからボタン(図形)をクリックしたけどgasを実行できなかったよ
なんか色々と制約があるみたいだし、JAVAやC#でスマホアプリ作ったほうがいいな

912 名前:デフォルトの名無しさん [2022/10/21(金) 00:43:10.35 ID:HmQfBwoT0.net]
どんどんスレの趣旨からはなれtrくなー
そもそもスマホアプリ作るならAndroidでC#使うならXamarin使うことが前提になるしiPhoneならSwiftかObjectiveCだろ

WindowsPhoneならxamlとC#かVB.Netで作ること出来たけど死滅しちゃったからなー
Javaは実行時に中間コード翻訳が挟まるから重いし
やっぱりスマホはiPhoneをSwiftで開発するのが最強だろうな
AppleのMacで開発することが前提になるからちょいお金が必要になるけど。

ExcelのVBAやってる人はMac買うんなら別途Windows も必要だな
MacのEXCELはVBAまともに動くことを期待しない方がいいから。

913 名前:デフォルトの名無しさん [2022/10/21(金) 01:50:58.42 ID:6vVdUlmSd.net]
>>912
突っ込み所が多過ぎ

914 名前:デフォルトの名無しさん [2022/10/21(金) 08:00:32.41 ID:K0Nv/hCp0.net]
>>912
突っ込み所がほんと多過ぎ

915 名前:デフォルトの名無しさん [2022/10/21(金) 17:19:06.50 ID:qYJSQXItd.net]
質問ですが、
シートに動的に追加したボタンに対して、共通のクリックイベントを追加したいのですがやり方がわかりません。
教えてほしいです。

activesheet.buttons.addで追加したボタンに対して、
クラスモジュールで作成したクリックイベントを結びつけたいです。

916 名前:デフォルトの名無しさん [2022/10/21(金) 17:20:50.78 ID:qYJSQXItd.net]
動的にボタン作成しながらそのボタンに対して共通のクリックイベントを結びつける方法です

917 名前:デフォルトの名無しさん (ワッチョイ 9fd8-NYmr) mailto:sage [2022/10/21(金) 18:49:07.97 ID:7JSr5kXR0.net]
>>916
.OnAction プロパティにプロシージャ名を設定

918 名前:デフォルトの名無しさん (ワッチョイ 7b2f-KWxC) mailto:sage [2022/10/21(金) 19:01:18.29 ID:DZ21JFev0.net]
基本的にはボタンのOnActionにマクロ(Subのメソッド)名を設定すればいいんだが
クラスモジュールのメソッドとか直接指定できないんじゃないかな
間に標準モジュールかますとかすれば行けると思うが



919 名前:デフォルトの名無しさん (スッップ Sdbf-h7FX) mailto:sage [2022/10/21(金) 19:01:59.59 ID:2/IIqD8Nd.net]
マクロの記録でもやればおおよそやりたい事のひな型のコードはできると思うんだよね
そういうやり方で解決できない人ってなんだろと思う
ActiveSheet.Buttons.Add(168, 108, 186.75, 66.75).Select
Selection.OnAction = "Macro1"
マクロで作ったこれを参考にすればいいんじゃないのと思うが
Addで作ったものをObject型の変数で受け取ってその変数のOnActionに代入するだけでしょ
それにググればこの程度はいくらでもでてくるんだけどね

920 名前:デフォルトの名無しさん [2022/10/21(金) 23:26:00.91 ID:HmQfBwoT0.net]
>>918
確かに。
何でクラスモジュールのメソッドに紐付けようとするか謎だよな。
そもそもそれにはインスタンスが生成されていなければならない訳だし
VBAのクラスはそこまで万能では無いからシングルトンパターンでよく使われるみたいに自分で自分を生成することも出来ない。

そうすると前もって生成したインスタンスのメソッドに紐付けるしかない訳だけどそんなことVBAのクラスで本当に出来るのか?と思ってしまうわな。






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

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

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