X



Excel VBA 質問スレ Part58
レス数が1000を超えています。これ以上書き込みはできません。
0953デフォルトの名無しさん
垢版 |
2019/02/08(金) 06:20:13.15ID:Ec5y9MTZ
>>950
Instrは検索文字が文字列の左から何文字目にあるかを返すよ
Instr(“東京都 渋谷区 ほげほげ町”, “ ”) は4が返ってくるのでそれでSplitする
ちなみに右から調べるInstrRevもある
0954デフォルトの名無しさん
垢版 |
2019/02/08(金) 06:40:44.15ID:Ec5y9MTZ
>>950
あと検索文字がない場合は0を返すから条件式で使うなら
Instr(Jusyo, “ ”) <> 0 Then にしといた方がいいかも
他の人が見たとき「?」になる
0955デフォルトの名無しさん
垢版 |
2019/02/08(金) 07:17:52.94ID:SOh8GklL
>>948
やってみた
結果、E列

あ い 
か き く 
さ た ち 
た ち 

答えは以下が正しいのとG列の式を
H列以降に無限に張らなければいけないのが問題ある
他にも問題があるかもしれないが・・・

あい
かきく

たち
0956デフォルトの名無しさん
垢版 |
2019/02/08(金) 07:21:27.36ID:SOh8GklL
>>923
ここで、ヒントを出してるのに
作業列は1列で十分
0957デフォルトの名無しさん
垢版 |
2019/02/08(金) 07:26:35.12ID:ViZCNFeP
フラッシュ演算のやりとり見てて思ったけど
文字にして答えを文字結合すればアルツハイマーテストに使えるんじゃね?
0959デフォルトの名無しさん
垢版 |
2019/02/08(金) 11:14:58.05ID:SOh8GklL
>>950
住所印刷なら、郵便番号が有るだろう
郵便番号の住所変換ルーチンはある
住所は郵便番号と比較すべきで比較してエラーを出すべき
郵便番号に合致する部分を1行目、それ以外を2行目が良いだろ
0960デフォルトの名無しさん
垢版 |
2019/02/08(金) 11:46:52.42ID:SOh8GklL
>>957
色々使えるだろうね
文字の表示位置を変えてタッチパネルでやるとか
応用範囲は広いがちゃんと全画面表示や文字の大きさ位
自動でできないとな、今時4Kモニターも出てるし・・・
0961デフォルトの名無しさん
垢版 |
2019/02/08(金) 12:00:58.70ID:CDEogeBV
>>950
limitオプションで回答は出てますが、実用的には長い住所の時は複数回改行も有り得るんではないでしょうか
またフォーマットが変わったときに全ての住所録の全角位置を調整するのが大変だと思われます
なので記入者には単純に単語毎にスペースを入れて貰って、適時自然な位置で改行するのはどうでしょうか
0962デフォルトの名無しさん
垢版 |
2019/02/08(金) 12:14:24.08ID:WyTY+E9f
>>961
運用でカバーできたら誰も苦労しないよね
0963デフォルトの名無しさん
垢版 |
2019/02/08(金) 12:19:37.60ID:jEYFKApV
自然な位置てなんやねん
0964デフォルトの名無しさん
垢版 |
2019/02/08(金) 12:29:29.52ID:CDEogeBV
一行の文字数を決めて、そこからInStrRevで最後のスペース位置を検索してLF挿入です
コード書いたんですが何故かブロックされます・・・
0965デフォルトの名無しさん
垢版 |
2019/02/08(金) 12:31:14.56ID:SOh8GklL
>郵便番号に合致する部分を1行目、それ以外を2行目が良いだろ
2行目があふれても、それは枠内で表示するだけで問題ないだろ
どうせ印刷はWordのあて名書きだろ2行目の表示エリアを広くしておけば問題ない
0967デフォルトの名無しさん
垢版 |
2019/02/08(金) 12:59:45.99ID:WyTY+E9f
>>965
普通は郵便番号と住所は別カラムだろ
というか質問者は郵便番号の話してないから
0968デフォルトの名無しさん
垢版 |
2019/02/08(金) 13:11:41.88ID:SOh8GklL
>>967
空想の世界で生きるのも人生
実態を考えるのも人生 好きにしてね
ちなみに、午後だからやばいかも
0970デフォルトの名無しさん
垢版 |
2019/02/08(金) 13:19:24.26ID:WyTY+E9f
>>968
くっさ
0971デフォルトの名無しさん
垢版 |
2019/02/08(金) 15:18:18.79ID:ZcpxXTEs
>>961
うちのシステムだとテキストボックスが既に3つになってて一段目が市区町村まで、二段目が枝番まで、三段目が物件名と部屋番+様方、会社名とかって決まってる。
0972デフォルトの名無しさん
垢版 |
2019/02/08(金) 15:20:53.99ID:SOh8GklL
まあ、なんだな住所を2行にしたいなんてあて名書きだけだろ
それって、Wordのあて名書き印刷ぐらい
で、きれいに住所を分けるのは郵便番号に載っている住所で区切るんだよ
それ以外は長いマンション名あるけど適当に範囲内で打てばいいんだよ
今時郵便番号を管理しない住所録もないだろ
まあ、引きこもりにはわからないかもしれないが
0975デフォルトの名無しさん
垢版 |
2019/02/08(金) 15:29:02.53ID:SOh8GklL
>>971
お前の所への質問じゃないな
あと、分けて入力するフォームも結構あるが
無視されることも多いだろ
気にしているところは、まず郵便番号を聞くな
0976デフォルトの名無しさん
垢版 |
2019/02/08(金) 16:46:02.55ID:QatAiOm8
>>950
「1つ目のスペースで2つに分ける。2つ目以降のスペースは無視」という解決ではなく
「分割が発生したら住所を2つに再結合する」という解決だけど

Sub test()
Dim tmp As Variant
Dim i As Integer
Dim jusho0 As String
Dim jusho1 As String
Dim jusho2 As String
jusho0 = Sheets("住所").Range("A1").Value '参照するセルは自分で書いてください
tmp = Split(jusho0, " ") '文字を分割して
If UBound(tmp) > 0 Then '分割が発生していたら再結合する
jusho1 = tmp(0)
For i = 1 To UBound(tmp)
jusho2 = jusho2 & tmp(i)
Next i
Else
jusho1 = jusho0 '分割が発生していなかったらそのまま代入する
jusho2 = " "
End If
Sheets("印刷元").Range("A1") = jusho1
Sheets("印刷元").Range("A2") = jusho2
End Sub

これでいけるはず
0978デフォルトの名無しさん
垢版 |
2019/02/08(金) 19:06:53.88ID:imEPOnT1
>>976
もしSplit( )で分割数の制限ができなくて
> 「分割が発生したら住所を2つに再結合する」
としても
Sub test()
Dim tmp As Variant
Dim i As Integer
Dim jusho0 As String
Dim jusho1 As String
Dim jusho2 As String
jusho0 = Sheets("住所").Range("A1").Value '参照するセルは自分で書いてください
tmp = Split(jusho0, " ") '文字を分割して
jusho1 = tmp(0)
jusho2 = ""
For i = 1 To UBound(tmp)
jusho2 = jusho2 & tmp(i)
Next i
Sheets("印刷元").Range("A1") = jusho1
Sheets("印刷元").Range("A2") = jusho2
End Sub
でいいだろ
ちょっとトリッキーだけど
jusho1 = tmp(0)
tmp(0) = ""
jusho2 = Join(tmp, "")
ってやる手もあるな
0979デフォルトの名無しさん
垢版 |
2019/02/08(金) 20:28:18.13ID:v6US6OW1
どこで質問していいのかわからないので、ここにお邪魔します
Jscript、  拡張子がjsのファイルですが、これでエクセルを操作するのですが、
複数のワークシートがあるxlsファイルを開いた状態で

var book = GetObject("C:\\file.xls");
var sheet = book.Worksheets( 1 );
sheet.cells( 2, 2 ).Select;

としたとき、1のワークシートを開いているときは問題ないのですが、他のワークシートを開いているときは
エラーになります。でも、
sheet.cells( 2,2 ) = 5
は問題なくできます

つまり、タブで対象となるワークシート以外の他のワークシートを選択しているとき、
代入はできるのに、選択ができないのです
選択をできる方法ってありますか
0981デフォルトの名無しさん
垢版 |
2019/02/08(金) 21:17:15.14ID:v6US6OW1
あ、出来た。シートのセレクトってできたんですね。ありがとうございました
0982デフォルトの名無しさん
垢版 |
2019/02/09(土) 09:52:28.52ID:45ZMFjRM
コード書く画面を
背景黒、文字色白にするには
どうしますか?
0983デフォルトの名無しさん
垢版 |
2019/02/09(土) 10:11:07.65ID:0f9Fhb3P
>>917
あとでみます。
0985デフォルトの名無しさん
垢版 |
2019/02/09(土) 10:52:22.81ID:4JLmAX8Q
依頼者ですがみました。ここまでやってくれるとは思わなかった、それぐらいの完成度の高いです。感謝です。

フラッシュ演算「のような」ツールがほしいニュアンスで言ったのですが、演算までやってくれるプラスアルファまでやってくれるとは思わなかったです。恐れ入りました。
0986デフォルトの名無しさん
垢版 |
2019/02/09(土) 10:59:52.07ID:76xhR9ul
>>881
まあ、Excelの関数や機能でやるのはスレ違だが
基本的にVBAでやるのは最終手段っと考えてるのであしからず

A1 B1から始めてるとして C1に入れる式は「=IF(A1>0,IF(A2>A1,B1&C2,B1),"")」
これをC列にコピーすれば、A列に1が入っているところに答えが入る

A列B列C列に、フィルターを設定して、A列の1のみを表示するだけ 
0987デフォルトの名無しさん
垢版 |
2019/02/09(土) 11:07:15.59ID:4JLmAX8Q
連投すみません。
さらに要望なのですが、
要望その一
現状、横並びでフラッシュ表示しますが、縦並びに切り替えることはできます?
可能であれば対応いただきたいです。できたら、円並び、ランダム配置といったバリエーションも検討いただきたく。

要望その二
「問題セット」シートにて、登録した文字列の順序をボタン一つでランダムに入れ換えることは可能でしょうか?
可能であれば対応いただきたいです。
もともと登録した文字列は同一シート内の別の列に退避させてください。
0990デフォルトの名無しさん
垢版 |
2019/02/09(土) 11:21:46.36ID:4JLmAX8Q
要望その二はわかりづらいと思うので、具体的には「きりん」を登録します。
これをランダムで文字を入れ換えて「んきり」といったイメージです。
「んきり」をみてばらばらの文字を自分が知っている既知の情報「きりん」に変換し、きりんをイメージする。

個人的な、ツールの用途として、左脳で文章をよまず、文章をぱっと見で右脳でビジュアルに思い描く右脳活性化のための訓練として扱いたいのです。

これができるようになると、本を読むとき、文章で読むより右脳でイメージでとらえながら読むので、速読が可能そしてイメージでみるので記憶に残りやすくなります。
0991デフォルトの名無しさん
垢版 |
2019/02/09(土) 11:32:56.47ID:6oInKB58
こんちには みさなん おんげき ですか?
わしたは げんき です。

この ぶんょしう は いりぎす の ケブンッリジ だがいく の けゅきんう の けっか
にんんげ は もじ を にしんき する とき その さしいょ と さいご の もさじえ
あいてっれば じばんゅん は めくちちゃゃ でも ちんゃと よめる という けゅきんう に
もづいとて わざと もじの じんばゅん を いかれえて あまりす。
どでうす? ちんゃと よゃちめう でしょ?

ちんゃと よためら はのんう よしろく
0992デフォルトの名無しさん
垢版 |
2019/02/09(土) 11:44:46.80ID:76xhR9ul
---------上記はワッチョイ表示用(この行の後を1行目から )--------
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑の二行はワッチョイつけ忘れ防止用の予備です。 立てた時点で1行消耗します
スレを立てる方は本文の文頭に上記行を三行重ねて立てて下さい

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part58
https://mevius.5ch.net/test/read.cgi/tech/1542577644/
---------上記はワッチョイ表示用(この行の前)---------
私は新参者なのでスレたては控えさせていただきますが
ワッチョイを入れることも検討してください
0995デフォルトの名無しさん
垢版 |
2019/02/09(土) 16:27:54.49ID:dlyNQvdo
スレ最後の質問。

あるファイルに、
on error goto err
******
exit sub
err:
msgbox err.description
end sub


こういうコードをたくさん書いてきました。
しかし、エラーが出たときに、どのプロシージャで発生したのか知りたくなり、
msgbox err.description & このプロシージャ名
に変更したくなりました。
「このプロシージャ名」を書く方法ってあるのでしょうか?
0997デフォルトの名無しさん
垢版 |
2019/02/09(土) 18:34:38.97ID:gPze9fmT
乗りかかった船だし、自分自身も勉強になっているのでこの案件は、できるところまでやりたいと思います。

>>987
要望その1
縦並び = 今でも(一応)可能。セルの書式設定からB2の書式で「配置タブ」の「方向」で縦を選んでみてください。
        文字の大きさとかも合わせて調整したら画面に収まりきると思います。後はセルの大きさも調整してみて。
ランダム配置 = スレの上のほうで案が出てたけどオートシェイプとかワードアートでできるかもしれないしできないかもしれない。あんま期待しないで。
円並び = 自分にはできません。

総じて、要望その1はあまり自信なしです!!!

要望その2
おそらく可能。まずはこっちから手をつけます。

時間がかかると思うのでのんびり待ってください。

>>922
922さんが想定された使い方かどうかはわかりませんが、使い方が解った気がします。
ヒントありがとうございます。
0998デフォルトの名無しさん
垢版 |
2019/02/09(土) 18:56:58.62ID:2u7e0Xtv
>>997
要望その二ができれば、要望その一のランダム配置は解決済みでよいです。
本は横書きと縦書きな二種類しかないので、円並びはあまり意味がないかなとおもうので対応は不要です。縦並びの実現はセルの書式設定で変えることができるので、実質要望その二だけになります。

余談ですが、Androidアプリでフラッシュカードというフリーのアプリを一週間前から使ってましたが、スマホでデータ登録は面倒、フラッシュ速度最大にしても0.5秒くらい望んでるものではないのでアンインストールしました。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 82日 14時間 28分 22秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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