Excel VBA 質問スレ Part63

■ このスレッドは過去ログ倉庫に格納されています
2019/09/16(月) 19:34:59.04ID:emfTAhXr0
!extend:checked:vvvvv:1000:512

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

※前スレ
Excel VBA 質問スレ Part62
https://mevius.5ch.net/test/read.cgi/tech/1561303297/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
311デフォルトの名無しさん (ワッチョイ 1ead-b2ak)
垢版 |
2019/10/17(木) 01:19:38.31ID:KClIintl0
>>309
会社の資産でもなんでもないけど?
1から自分で休日に作ってるんだけど?会社で使うものでもないんでw
2019/10/17(木) 01:23:29.50ID:cDk85Tz1x
>>311
仕事でもないのにわざわざVBAを使うってただの苦行じゃん
PythonとかJavaScriptとか使えばいいのに
2019/10/17(木) 01:26:24.43ID:QyNdzX/10
インターネットからまるまるパクることを1から自分で作るとは言わない
2019/10/17(木) 01:28:05.18ID:cDk85Tz1x
控え目に言ってアホだよな
2019/10/17(木) 07:12:10.84ID:f3ZcAy7Ha
vbaの話で別の言語とか出してマウント取りたい人って何なんだろうね
職場の同僚も大変そうw
2019/10/17(木) 07:30:47.90ID:cDk85Tz1x
何か心に刺さったのかな?
他言語持ち出されたときにマウント取られたと思うのは大抵そう受け取る側に問題があるぞ
2019/10/17(木) 08:03:49.72ID:p8i0Yvjup
>>316
一応ここVBAのスレだから
せめてJavascriptやPythonでExcelが扱えるようになってから来なさい
2019/10/17(木) 08:25:30.37ID:kDxfJkPvM
前提もなしに>>312みたいなこと書くやつは要らんっていう話だろ
2019/10/17(木) 08:36:06.38ID:GRl5SZlQM
結局なんらかの形で表データを閲覧するならエクセルで閉じた方が楽だなと思う
2019/10/17(木) 10:14:17.57ID:V7Fv8DAn0
結局、表入力が簡単で確実なんだよな
なんつか心配がいらない
処理はpythonのほうが楽だがエクセル
ファイルのみで管理できるってことも含め
総合的にはVBAいいんだよね 雑な意味で
データと処理が一つにまとまってるんで
オブジャクト思考的ってか
2019/10/17(木) 10:31:18.04ID:fkyJRw1v0
発音に「ャ」の要素はないかと。
2019/10/17(木) 10:39:10.24ID:V7Fv8DAn0
API呼び出せるんだから
大概のことはVBAでどうにか
なってしまうんだよな。小さい会社、つまり
会社の9割以上はVBA程度で
十分なんだよな まあVBAがおもちゃで
なくてはならないって立場は分からんでもないがw
2019/10/17(木) 15:37:20.74ID:e7g1u0+T0
エクセルの表から始まる作業ならVBAがいいとおもうよ
例えば客からの電話注文をエクセルに一度まとめていて、それを管理画面に反映させる作業とか・・・
スクリプトを動かす必要のないサイトならブラウザ開かずにボタンポチで完了するし
(いつもちゃんと登録されてるのか不安がられるが)
2019/10/17(木) 16:07:50.37ID:gr44XWYWM
俺ならそういうのはGoogle Spreadsheet使うかな
一旦ローカルに置くのは無駄
2019/10/17(木) 16:46:25.92ID:e7g1u0+T0
>>324
みんなエクセルで管理したがるので
2019/10/17(木) 18:09:32.12ID:p8i0Yvjup
まぁVBAやって育ってくるとその内
VB.Netとかやるようになって
Web系を扱うようになると
ASP.Netとかやる機会も出て来るから
SQLと同じようにHTMLとかCSSとか
JavaScriptとか必要に迫られて
片手間で覚えるようになるから大丈夫。

別に今のままで良ければそのまま
VBAやってればいいわけだし。
327デフォルトの名無しさん (ワッチョイ 9f94-vCPd)
垢版 |
2019/10/17(木) 19:58:00.62ID:EDPspb6d0
VBAの最大のデメリットは何でもVBAでやろうとする脳になる事
こんな化石のような言語でやるのは苦行そのもの
今更覚える意味すらない
2019/10/17(木) 20:00:11.81ID:2ydjDz1a0
そんな意味のないもののスレをわざわざ見に来る意味はあるの
2019/10/17(木) 20:41:45.44ID:j32AuqLC0
>>322
さすがにエクセルで納品ってわけにいかないから
適当にインターフェースつくるが中身はVBAで
十分ってのはあるな

>>327
そんなに言語仕様クソか?
小綺麗にまとまってると思うけどな
純粋さはないが使い勝手は悪くない
2019/10/17(木) 20:55:38.52ID:a6vhi3mO0
時代遅れ感があるのと、どう書くべきかが分かりにくいのと、エラーメッセージがクソなのを除けばそこまででもないな
シートモジュールやブックモジュールが邪魔すぎる。標準モジュールだけで良かった
そしてエラーメッセージの「修正:式」はあまりに不親切。ここはアップデートかけてくれてもいいのに
2019/10/17(木) 21:02:24.20ID:9rn0DJ5qa
他の言語と比較すればマトモだと思う
2019/10/17(木) 21:18:35.64ID:uSN2w5EG0
>どう書くべきかが分かりにくいのと

それは言語の問題じゃない。

英語の文法はわかりにくい → そりゃお前が日本人だからそう思うだけだろ!
日本語の文法はわかりにくい → そりゃお前がアメリカ人だからそう思うだけだろ!
2019/10/17(木) 21:22:30.75ID:a6vhi3mO0
出ました定義したがりw
2019/10/17(木) 22:03:59.43ID:uSN2w5EG0
>>333
え?
違うの?
じゃあわかりにくいのは、あんたの能力の問題だね。
俺にはわかりやすいから。
2019/10/17(木) 22:53:38.34ID:lelQayoPx
シートモジュールとブックモジュールはただのクラスモジュールだからなぁ
コンストラクタとデストラクタがないぶんシートモジュールだけが特殊だが
2019/10/17(木) 23:08:12.09ID:a6vhi3mO0
そう、オブジェクトが何か分かっていれば何の問題もない
しかし現実問題、Excelを使うのは一般事務。setっていつ使うのかなかなか理解できない層が中心なのだ
2019/10/17(木) 23:49:25.80ID:lelQayoPx
implementsステートメントで組み込みのワークシートオブジェクトのインターフェースを継承すればシート用モジュールになります、って感じの仕組みならよかったよな
ユーザー定義クラスだって属性宣言を先頭に持って来ればクラス用モジュールになりますって感じの扱いで良かったし
2019/10/18(金) 00:09:11.06ID:RulO09Tc0
オマイラのスーパーテクを俺に継承してくれや。
2019/10/18(金) 01:12:13.81ID:Kn6PgWdna
>>338
VBAを上手く使うというのはつまるところ「可能な限りVBAを使わない」なので教えろと言われても難しいな
業務フローのレベルからVBAが最小限になるように設計するんだよ
2019/10/18(金) 01:29:19.13ID:sk0uHZY+x
PowerQueryとかPowerPivotとか標準的なExcelの組み込み機能で出来る作業をVBAでやってるのを見るけどああいうのも時間の無駄だわな
2019/10/18(金) 06:28:43.63ID:rwfK/g890
vbaで何でも出来るから全部vbaでやる・・・それがシンプルでカッコイイ事だと思いこんでいた時期がありました
2019/10/18(金) 08:24:07.64ID:RulO09Tc0
武器を持った奴が相手ならVBAを使わざるを得ない
2019/10/18(金) 08:28:11.67ID:RulO09Tc0
>>339
>>340
>>341
レスありがとう。万能なExcelに選ばれた言語、それが、VBA!

VBA王に俺はなる!
2019/10/18(金) 12:32:43.64ID:xgSV8V5dp
>>343
そんなこと言わんと
VBAをとっとと卒業してC#辺りに入りなさいな。
他の言語も勉強するとVBAのコードの組み方もガラッと変わるよ。

例えば.Net系をやればクラスやインターフェースの理解がグッと深まるから
テスト項目も減らせる組み方が出来るし、変更点の改修も少ない組み方が出来るようになる。
2019/10/18(金) 12:35:35.40ID:YN+VnyL5M
そういう所まで進みたい人とそうでも無い人がいるって事を理解しなよ
2019/10/18(金) 12:45:18.66ID:dVFolCOsM
>>345
どちらにせよVBAを極めても意味はないという帰結に違いはないな
2019/10/18(金) 12:47:17.38ID:as8acMuSa
本当にプログラミング好きな人はVBAじゃ満足しないだろ
VBAを極めるとはどういう状態かわかりませんが
2019/10/18(金) 12:55:00.41ID:YN+VnyL5M
>>346
ちょっと理解出来ないです
2019/10/18(金) 14:34:31.34ID:C4vTbpVj0
2つ質問させてください

Sub Main()
Dim n As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws1cell As Range
Dim r As Long
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(Worksheets.Count)
n = ws1.Cells(Rows.Count, 5).End(xlUp).Row + 5
For r = 1 To ws2.Cells(Rows.Count, 5).End(xlUp).Row
Set ws1cell = ws1.Range("E:E").Find(ws2.Cells(r, 5).Value, lookat:=xlWhole)'項目名が違い、達成率が100%でない場合は開始日・終了日・達成率を更新
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then
ws1cell.Range(ws1.Cells(n, 8), ws1.Cells(n, 10)).Value = ws2.Range(ws2.Cells(r, 8), ws2.Cells(r, 10)).Value
n = n + 1
Else'達成度が進んだ場合は開始日・終了日・達成度を更新
If ws1cell.Value = ws2.Cells(r, 5).Value And ws1cell.Offset(0, 3) < ws2.Cells(r, 8) Then
ws1cell.Offset(0, 3) = ws2.Cells(r, 8)
ws1cell.Offset(0, 4) = ws2.Cells(r, 9)
ws1cell.Offset(0, 5) = ws2.Cells(r, 10)
End If
End If
Next r
End Sub
項目名が違う時にエラーが出てしまいます
If ws1cell is nothingの部分で変数を解放しているから問題なのかと考えていましたが、ws1cell = "" , 0に書き換えてもウォッチウィンドウで見ると
set ws1cellを通った後もnothingのままになっていました
setを通れば変数を定義出来ると思っていたのですが、どのようにすれば解決できますか?
よろしくお願いします
2019/10/18(金) 14:35:51.85ID:C4vTbpVj0
改行エラーが出てしまったため2つに分けました
VBAを使い始めて1ヶ月弱なのですがC#でエクセルを操作出来るようになりたいと考えております
VBAで作ったプログラムを元にして、C#を学ぶ方法は無いでしょうか?
書き方が全然違うとの話を聞いたので、諦めて最初から覚えるしかないかと途方に暮れております
よろしくお願いします
2019/10/18(金) 14:58:09.86ID:irJy6XEP0
なんでvbaでできる事をいちいちC#でやろうとするか意味解らんよ
2019/10/18(金) 15:40:17.44ID:71CpEOK5d
今後C#を使う予定であれば、VBAで出来る事だとしてもC#を使う時間を増やした方が習得が早いと思ったからです
2019/10/18(金) 19:07:24.11ID:Kd4kiXAf0
>>349
一番目のIF文の条件間違えてね?
これだとNothingのときに中で使うことになっちゃうよ
2019/10/18(金) 19:07:29.23ID:7YrisXmNd
文法が全く違う言語だから何をどう頑張ろうがベースにはできない。
せいぜい同じ結果を出せるかどうかの演習材料にしかならんよ。
2019/10/18(金) 19:11:29.96ID:vO06UtuM0
>>350
覚えるっていうか移植先の作法に従って書き換えるだけ
356デフォルトの名無しさん (ワッチョイ 1ef7-V+wO)
垢版 |
2019/10/18(金) 19:17:45.06ID:Kd4kiXAf0
>>349 書き直すけど
If ws1cell Is Nothing And ws2.Cells(r, 10) < 1 Then は
ws1cellがNothingのときじゃないと通らない。なのにそのあとでws1cell.Range〜とかws1cell.Offsetなんてやると当然エラーになる。
Not ws1cell Is Nothing みたいに反転させないと。
2019/10/18(金) 19:35:18.82ID:YN+VnyL5M
セルがどういう時にnothingになるのか分かって条件に指定してるのか怪しい気がする
2019/10/18(金) 19:38:22.84ID:xgSV8V5dp
>>350
VBAやって一ヶ月ならそのままVBAやっておけばいいよ。別に急いでるわけでもないんでしょ?

VBAやってツールの幾つかでも作って、コードがそらで書けるようになったらまずVB.Netをやる。

文法はそっくりだけど構成が違うし見たこともない命令も沢山あるから多分苦労すると思う。
でもここさえ乗り越えてしまえばObject指向の何たるかが大体解るようになるからそうしたらC#に入ればいいよ。

C#はVBA→VB.Netのときとは逆に構成がVB.Netとよく似ていて文法が違う。あと型が厳しい。
でも、ま、VB.Netを覚えてしまえばC#も7割方理解したって言えると思う。

何も手を着けてない状態なら最初からC#をやることを勧めるけど
折角VBA始めたんだから遠回りにはなるかも知れないけどそういう楽な方法もあるよ。
2019/10/18(金) 20:19:32.44ID:L2N4rS5+M
それ以前に>>349
> 項目名が違う時にエラーが出てしまいます
じゃなくてどの行でどんなエラーが出てるのかを書けよ
ID:Kd4kiXAf0は超親切だからレスしてくれてるけど普通はスルーされて終わりだよ
2019/10/18(金) 21:48:21.62ID:/2Um4idM0
>>356
条件が反対だったんですね…
If文の条件をもう一度書き直してみます
丁寧にありがとうございます

>>355
>>358
将来的にはエクセルに集約しすぎて重くなってしまっているデータを、誰でも使えるように軽くしたいと考えている位なので、まずはプログラムに慣れて行きます
プログラムの考え方だけでも次のステップの練習問題には使えると思うので、数をこなしてみます
ありがとうございます

>>359
すみませんでした
次から質問する時は気をつけます
2019/10/18(金) 21:50:15.03ID:vO06UtuM0
>>349
関係ないけど変数の中に何か入れることを定義とは言わない
定義はDimの行でやっている
2019/10/18(金) 23:10:26.23ID:3qufjhb3x
>>361
もっと細かく言うとDimでやっているのは定義ではなく、あらかじめ定義されたデータ型の適用を宣言してその型に適合したメモリ領域を確保することなんだけどな
未知の型を宣言するとエンジン側で型検査できずにコンパイルエラーになることを考えたら分かる
2019/10/18(金) 23:16:13.52ID:1ynBc/Lo0
>>360
そういう目的があるならまず覚えるべきはSQLだね
VBAだろうがJavaだろうが.Netだろうが
どの言語をやっていてもデータベースを扱う限り
SQLはまず使わないことがない。

ま、中にはEntityFreamworkなんてSQLを使わずにDBに同期してデータを
引っ張るなんて場合もあったりするけどSQLは最初の内に覚えておいて絶対損はしないよ。
2019/10/18(金) 23:22:21.64ID:dVFolCOsM
>>363
VB系言語はそれだけやってると変な癖がついて他言語への適応が困難になるから、
プログラミングの基礎の基礎だけ習得したらあまり使い込まないですぐに他に移った方がいいよ
2019/10/19(土) 00:34:54.51ID:UvKzTNAx0
>>364
そこは割り切り。
どうせどんな言語やってたってちょろっとしたツールを作るには
VBAでやった方が手っ取り早いことの方が多いんだから。
どの仕事場でも大概Excelは入っているしね。

それにVB系は癖が強いから他言語の習得を阻害するというのも
個人の適応能力やセンスによるものも大きいからちょっと何とも言えないし。

むしろ俺みたいに適応力やセンスが皆無なら
やれ構造化言語だ、object指向だ、関数型言語だって変わるたびにチンプンカンプンなところから始めるから
結局否応なくその言語に合わせることになるんだけどね。
2019/10/19(土) 02:56:34.09ID:Z3LWqSJp0
.netを始める上での壁は文法や型なんかより膨大なクラスを把握することだからVBでもC#でも手間は変わらん
しかも日々増殖したり仕様が変わったりするから手に負えない
2019/10/19(土) 05:58:33.57ID:4RrPMtib0
VBAは枯れに枯れた技術って意味で物凄い安定感がある

>>365
さすがに関数型言語はもう無いんじゃね?
一時遊びでlispやってたけどあれは頭の切り替えに難儀した。あれが業務だったら退職しますわ
2019/10/19(土) 06:05:45.30ID:UvKzTNAx0
>>367
ちょい前までExcelに入るんじゃないかって噂で騒がれてたPython、あれ関数型言語だよ
2019/10/19(土) 06:21:12.47ID:4RrPMtib0
>>368
あれ、まだ関数型言語に分類されるのか
2の頃はそうなんかなl−と思ってたけど、3になるとすっかりオブジェクト指向担ったと思っていたのに
2019/10/19(土) 06:47:40.57ID:UvKzTNAx0
うーん、なんて言うか
Microsoftが出してる言語、複数やったことがある人なら何となく知ってると思うんだけど
何か中途半端にとどめておくのが好きみたいな傾向があって、

例えばVBAや旧VB6なんかでもObject指向の概念は
取り入れてるんだけどインターフェースはあるけど
.Netでいう継承は出来ないとか

.Netでも関数型言語の概念は取り入れててlinqやrambda式が使えるけどデータ分析や機械学習が
出来ないって訳じゃないけど苦手だったり。

次に何か出るときはその変のことが統合されて
いい感じになったものが出るんだろうけど
多分次もその次に出て来る新しい概念を
中途半端に取り入れたところで落ち着くような
そんなことを繰り返すような気がするね。
2019/10/19(土) 06:54:51.77ID:a0xT/TLW0
>>365, >>368
Pythonが関数型とか適応力やセンスの問題じゃなくて単なるアホやろw
2019/10/19(土) 07:39:52.38ID:UvKzTNAx0
>>371
何となく言いたいことは解るけど
一応パラダイム対応してるからObject指向でも書けるけど
それだけだったら他に洗練された言語いっぱいあるしやっぱり関数型色が強いしね
2019/10/19(土) 07:43:44.99ID:VlF8OMgza
ここの人たちはどんなシステム作ろうとしてるんだ
事務処理をちょい効率化したい程度の簡単なプログラムならVBAが最高
2019/10/19(土) 08:08:42.95ID:UvKzTNAx0
>>373
そうなんだよね。
よく「別言語の〜でやれば〜行で出来るのに」って
言う人がいるけどあれは違うと思う。

VBAは凄く間口が広い言語で
EXCELが有ればどこでも組める言語。
手軽だから何かをちょろっとやらせるには
非常に使い勝手のいい言語なんだよね。
特にExcelが絡んだときは。

間口が広いってことは初心者からお年寄りまで
誰にでも優しい言語だからそりゃ至らない部分も沢山あるけど
他の言語で簡単に出来る部分でExcelが苦手な部分を
どうやっていい感じに作りこんで行くかを考えるのもまた醍醐味。

例えばXNAとかでテトリス作った後でもう一回
じゃ、今度はVBAで作って見ようかなと思わせる
何かがある言語だと思う。
2019/10/19(土) 08:10:42.89ID:Mtyg747cM
>>372
どこを見て関数型と言ってるんだ?
パラダイムとか言いたいだけやろw
2019/10/19(土) 10:54:26.76ID:CSoOYtrTa
VBAのいいところはほぼ会社のPCで普通にはいっているExcelでいろんなことができるようになることだろ
C#だなんだっていうやつは職場のPCにかってにVSとかいれていいとでも思ってるのかな
それをわかってないバカが多すぎ
2019/10/19(土) 11:14:07.78ID:Vb23X7hcd
データの整理とか手作業でやらされてるのを、ちょっと自動化して楽したいだけなのに、なんでC#とか使わなあかんの
2019/10/19(土) 11:32:54.08ID:a0xT/TLW0
>>376
今時のWindowsにはC#コンパイラは標準で入ってますけど?
> それをわかってないバカが多すぎ
自己紹介乙w
2019/10/19(土) 11:43:29.38ID:ZEihazemx
ちょっとした処理のためにCOMのOfficeのGUIを起動させ続けなきゃいけないってのがVBAの最大の難点でしよ
単なるデータ整理をする環境として見るとOfficeは高機能すぎるし効率が悪い
PowerShellなんてWindows標準でSDKとCUIがインストールされてるしマルチプロセスもOKだからな
2019/10/19(土) 12:03:08.48ID:hNMTCzKgp
Powershellは.NetFramework抜いたらただのshell
.NetFrameworkにへばりついてるただの寄生虫
2019/10/19(土) 12:04:29.37ID:EjAyXMTtd
>>378
そのC#コンパイラが使いにくいw
メモ帳で頑張るのが苦痛だw
2019/10/19(土) 12:06:19.27ID:EjAyXMTtd
>>379
寧ろ、OfficeのGUIが起動してるのが前提だよ。
ExcelのファイルをどうにかしたいだけだったらVBAである必要全く無いんだから。
2019/10/19(土) 12:09:07.46ID:EjAyXMTtd
ちなみにここはVBAのスレであってExcelブックをどうにかしたいスレじゃない。
でも、なぜか競合しないのにVBAでないものを書く人が沸いてくるね。
2019/10/19(土) 12:09:32.04ID:a0xT/TLW0
>>380
> Powershellは.NetFramework抜いたらただのshell
流石にそれはアホすぎ
パイプにオブジェクト流せるとか配列処理とか従来のshellとはかなり違う
2019/10/19(土) 12:10:48.45ID:a0xT/TLW0
>>381
面倒と言うならわかる
VSなんて要らんよっていうだけの話だし
2019/10/19(土) 12:29:53.54ID:Tgsi24Yea
パワーシェルってなんだよ
難しいな
2019/10/19(土) 12:37:43.59ID:Tgsi24Yea
理解したわ
2019/10/19(土) 13:01:01.88ID:pCXt87yDd
>>373
開発職やってるが、Excelじゃなくて他の環境で作るべきではと思うようなシステムをExcelて依頼されることがよくある
Excelっていう環境が使う側にとっても手軽で都合がいいんだろう
2019/10/19(土) 13:21:58.93ID:ZEihazemx
>>388
俺は逆に発注側だけど、Excelの方が都合が良いというより、Excelしか想像できない奴に要件整理のタスクを与えて社内稟議まで通してRFP出してしまう感じ
Excelで作ろうが他のシステムで作ろうが発注側は中身が理解できないから取捨選択すらしてない
2019/10/19(土) 13:22:25.60ID:Z3LWqSJp0
ある意味閉じた環境だからテストが楽なんだよ
もちろん完全なサンドボックスではないけど
2019/10/19(土) 13:27:49.07ID:EjAyXMTtd
>>388
それあるね。
ネットワークとユーザー認証絡む奴でExcelには向かないからWebとかで作った方が良いって言ったんだけどさ、予算が無いんだってさ。
2019/10/19(土) 13:37:35.97ID:cIlA6SsdM
csc教えてくれてありがとう。世界が広がったわ。
エクセルで社内chatアプリとか作り放題できそう。
2019/10/19(土) 23:16:31.79ID:Ryiq5UZK0
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていなければハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。

G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?

Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")

'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub

ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)

Dim Filepath
Filepath = pas_kom1

Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
2019/10/19(土) 23:20:25.07ID:Ryiq5UZK0
↑393です。間違えました。訂正します
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。

G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?

Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")

'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub

ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)

Dim Filepath
Filepath = pas_kom1

Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
2019/10/19(土) 23:20:42.32ID:Ryiq5UZK0
↑393です。間違えました。訂正します
A1セルに飛びたいブックのアドレスが書いてある(C:\test1.xlsx)環境下
test1.xlsxが開いていなければWorkbooks.Open(Filepath)で開く
test1.xlsxが開いていればハイパーリンクで飛ぶ(2重起動しないため)
にしたいのですが、どうしてもできません。

G4にハイパーリンクをせっていしましたが、できません・・・どこが悪いのでしょうか?

Dim myChkBook As Workbook
Dim bookname As String
On Error GoTo ErrHdl
Set myChkBook = Workbooks("test1.xlsx")

'"開かれています。"
'ハイパーリンク起動G4
Range("G4").Hyperlinks(1).Follow NewWindow:=True
Exit Sub

ErrHdl:
' "開かれていません。"
(↓pas_kombetu1は設定済みで以下のマクロは実行できます。)

Dim Filepath
Filepath = pas_kom1

Dim targetWorkbook As Workbook
Set targetWorkbook = Workbooks.Open(Filepath)
2019/10/19(土) 23:27:37.60ID:yen3fKlK0
ハイパーリンクでどこへ飛ぼうとしているのか?
天国か?
2019/10/20(日) 04:33:33.09ID:9oZ0eOj0r
mychkbook.activate
range~
2019/10/20(日) 14:29:15.27ID:udtUjyhnx
>>395
やりたいことはこういうことかな?
処理の内容からみて、GoToでエラーハンドラに飛ばす必要はないと思う


' 開いているブックの集合に対してループを回し、順番にmyChkbookにセットして名前を調べ、test1.xlsxが見つかったらループを終了する

Dim myChkbook As Workbook

For Each myChkbook In Workbooks
If myChkbook.Name = "test1.xlsx" Then Exit For
Next myChkbook

' ループが終了した段階でmyChkbookにセットされているブックの名前がtest1.xlsxでない場合、test1.xlsxが開かれていないことを意味するので、test1.xlsxを開いてmyChkbookにセットする

If myChkbook.Name <> "test1.xlsx"
Then Set myChkbook = Workbooks.Open(pas_kom1)

' myChkbookをアクティブにしてハイパーリンクをフォローする

myChkbook.Activate
Range("G4").Hyperlinks(1).Follow NewWindow:=True
2019/10/20(日) 17:59:43.40ID:WrbRE/qYa
どうせ設定とかじゃね
2019/10/22(火) 08:37:21.30ID:Ppw3/Jpc0
プログラムじゃなくて、プログラミング言語とは…驚いた
学生の頃、友人がyaccとか字句解析とか構文解析とか言ってたが、その世界か…分からん

スーパー中学生誕生、プログラミング言語わずか数週間で開発、
U-22プログラミング・コンテスト2019 2019/10/21
https://www.bcnretail.com/market/detail/20191021_142131.html

「もっと人間にとって扱いやすい、自分の言語をつくってみたかった」。
10月20日に東京の秋葉原コンベンションホールで開催された第40回「U-22プログラミング・コンテスト2019」の
最終審査会で、見事、経済産業大臣賞(総合)を受賞した開成中学校3年の上原直人さん(15歳)は、
独自プログラミング言語「Blawn」を発表した。

IT業界の経営者など、並みいる審査員を驚かせたのは、完成度の高さはもちろんのこと、今年8月からわずか
数週間で完成させたスピードだった。
一次審査の応募期間7月1日〜9月2日に着想から開発、完成まで一人で仕上げたという。

◆C言語を使ったのは今年7月
それまでPythonを使っていたという上原さんは発表の中で、「今年の7月か8月にC++を始めたが、扱いにくかった。
もっと可読性の高い構文とメモリの安全性や速度を高めたいと思った」と、開発のきっかけについて語った。

質疑応答で審査員から、「7月にC++を使ったということは、Blawnはそれ以降につくられたということですか?」
と聞かれて、上原さんが「7月中旬に構想して構文解析を行って、プログラムを書き始めたのは8月ごろ」と答えると、
会場にどよめきが起きた。文句なしの受賞だった。

上原さんは、ほかにもスポンサー企業のデジタルガレージとサイボウズ2社の賞と、当日の模様を配信した
ニコニコ生放送の視聴者による賞など4冠を達成した。

Blawnの特徴は、型名の記述が一切不要、構文の可読性が高い、すべての関数/クラスがC++でいうところの
テンプレート関数/クラス、コンパイル速度と実行速度が速い、メモリが安全などだ。

また、Blawnの言語名は「Blue Lawn(青い芝)」からもじったもので、隣の芝が青く見えるほど、既存の言語の
不満を解消できるような良い言語にしたい気持ちを込めたという心憎い演出もあった。
2019/10/22(火) 15:11:43.53ID:qPForpUI0
なぜ天才は日本語プログラミング言語を作ってくれないのか
2019/10/22(火) 15:18:35.17ID:N/F1Z5u20
日本語プログラム言語あるけど流行ってない
2019/10/22(火) 15:19:56.38ID:xfWb2k0X0
変数に2バイト文字使えるだけでもかなりありがたいぞ
2019/10/22(火) 15:30:45.72ID:xJDh6jyea
>>401
日本語が曖昧で向いてないだろ
2019/10/22(火) 15:40:40.34ID:9HPDColwx
自然言語のルールそのままでプログラミング言語を実装するわけじゃないから日本語が曖昧云々ってのはズレてる
英語のit とかtheyとかbeだって曖昧極まりないし
2019/10/22(火) 16:09:09.07ID:GMYZfzoF0
>>403
> 変数に2バイト文字使えるだけでもかなりありがたいぞ
今時使える処理系の方が多いだろ
2019/10/22(火) 16:09:15.44ID:xfWb2k0X0
>>404みたいなのは何も考えてない+自分に自信を持てないアホだから相手しても時間の無駄だぞ
2019/10/22(火) 16:17:32.52ID:xfWb2k0X0
>>406
え、マジかわざわざ挑戦するようなことでもないから知らんかった、スマン
.NETはともかく他に何かあるんか?web系は全滅と思うけど変わってるのだろうか
2019/10/22(火) 17:34:47.60ID:wz2D8YEyr
>>397 >>398
ありがとう。解決しました
2019/10/22(火) 17:37:00.61ID:GMYZfzoF0
>>408
それこそVBAでも使えるしVisual Studioで使えるC/C++, C#, VB.NETはもとより、GCCとかPython3でも使える
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況