Excel総合相談所 71
at BSOFT
1:名無しさん@そうだ選挙にいこう
08/06/23 15:57:28
Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-10あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
URLリンク(www.google.co.jp)
前スレ
Excel総合相談所 70
スレリンク(bsoft板)
2:名無しさん@そうだ選挙にいこう
08/06/23 15:58:07
▼━質問時の注意・決まり事━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能でExcelに関係ないことも出来ます。
Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
その上で、どううまくいかないのかを具体的に書きましょう。
エラーが出るなら、何処でどういうエラーが出るのか、
想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介依頼はスレ違い。ここは技術的な質問のみで。
3:名無しさん@そうだ選挙にいこう
08/06/23 15:58:35
★ルールを無視すると…
>>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。>>2にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
2.>>1★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
4:名無しさん@そうだ選挙にいこう
08/06/23 15:58:56
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼環境・書式
・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
・ 行の高さを0.25きざみ以下の単位で指定する
・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
・ 祝日を判断する (作業セルに祝日を列挙、VBA)
・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する (プラグイン)
・ 罫線幅の自由指定
・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)
▼操作
・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
・ 1セルを分割 (分割したいセル以外を結合)
5:名無しさん@そうだ選挙にいこう
08/06/23 15:59:20
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼数式・関数
・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
・ 関数式でセルの選択状態を取得する (VBA)
・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
・ 入力したセルに結果を返す (VBA)
・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
・ 値の書き換え、値の保持 (VBA)
・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)
▼VBA
・ ExecuteExcel4Macroの参照で空セルと0値を区別する
・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
・ VBのコントロール配列と同じような操作をしたい
(イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)
▼ユーザーフォーム
・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)
▼グラフ
・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
(オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
┌┐
〜〜
||
6:名無しさん@そうだ選挙にいこう
08/06/23 15:59:43
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。
また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。
>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
7:名無しさん@そうだ選挙にいこう
08/06/23 16:00:09
||
|| ━ 質問のしかた ━
||
|| ★1 質問するときは、環境や条件をキチンと書くこと。情報後出しはダメ。
|| ★2 要望は具体例や図を使って明確かつ具体的にしる。
|| ★3 質問前に>>2-20あたりの注意書きやQ&Aを必ず読むこと。
|| ★4 質問テンプレ(雛形)は必須ではないが、
|| OSやExcelのバージョン、VBAの可否などは必須情報。
||
|| ∧ ∧ 。
|| ( ,,゚Д゚)/ ジュウヨウ!! E[]ヨ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/  ̄ ̄ ̄ ./| ________________
| ̄ ̄ ̄ ̄| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ は〜〜〜〜い /
∧ ∧ ∧,,∧ ∧ ∧
( ,, ∧▲ ミ ∧ ∧ ( ∧ ∧
〜(_( ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
@(_(,,・∀・)@ ( *)〜ミ_ ( ,,)
@(___ノ 〜(___ノ 〜(___ノ
エクセルの技術的な質問と関係ない議論・雑談は下記スレッドで。
【質問不可】Excel総合相談所スレの雑談・議論スレ2
スレリンク(bsoft板)
8:名無しさん@そうだ選挙にいこう
08/06/23 16:00:33
【 このスレの登場人物 】
┌─質問者──────
どこにでもいるごく普通の初心者だったり
会社で上司に無理難題を押しつけられて困っている人だったりする。
たまに学生が宿題を持ち込んでくることも。
┌─回答者──────
テンプレを使わないと無視したり、質問を小出しにするとキレたりするくせに
自分は回答を小出しにして優越感に浸りニヤニヤしている嫌なヤツ。
┌─自称回答者─────
質問者を煽ったり、回答者を煽ったり、とにかくスレを引っかき回すだけで
何の役にも立たない賑やかし。単なるヒマ潰しでこのスレを見ている。
┌─VBA厨 ──────
VBAは万能と信じ、どんな単純な問題もついVBAで解いてしまう。
Module1がデフォルトで挿入されている世界を夢見るが、いまだ実現していない。
その実態はほとんどが理系の(元)学生。ピボット厨に目の敵にされている。
┌─ピボット厨─────
ピボットテーブルの機能が強力すぎるため、なんでもできると錯覚している。
口癖は「データを正規化して出直せ」「ピボッと参上ピボッと解決」など。
弱点は大嫌いなVBAを使わないとテーブルのリアルタイム更新ができないこと。
┌─啓蒙先生─────
ピボット厨一派の過激派。Excelはピボットテーブルだけのためにあり、
それ以外の機能はワークシート関数すら不要と言い切る。ピボットテーブルで
解決できない質問からは威嚇しながら逃げる。最初から出てこなきゃいいのに。
┌─そのほか─────
ワークシート関数厨……何重にも入れ子になった複雑怪奇な数式を作り出し、
関数だけでどんな問題も解いてしまう。たまに自分でも何をやっているか
わからなくなる。悩みは数式バーが1行しかないこと、頭が薄くなってきたこと。
配列数式厨……意外と使えるやつだが滅多に出てこない、というか出番がない。
極めてマイナーな存在。見かけたらその日はいいことがあるかも。
ナレーター……このわたくし。みなさんよろしく。
9:名無しさん@そうだ選挙にいこう
08/06/23 16:10:26
激しく乙〜(・з・)
10:名無しさん@そうだ選挙にいこう
08/06/23 16:14:45
>>8
的確すぎてワロタ俺はVBA厨。
だってエクセル関数にできてVBAでできないことないんだもんwwww
11:名無しさん@そうだ選挙にいこう
08/06/23 16:43:38
>>8
職場でふいたじゃねーか!
でも乙
>>1乙
12:名無しさん@そうだ選挙にいこう
08/06/23 17:19:32
>>8
ピボットの誉めすぎだよ。ありがとう。
ピボ厨もVBAが何でもできることは認めているんだよ。自身も必要なら使う。
問題はこのスレのVBA厨が何も解決できないことなんだ。
13:名無しさん@そうだ選挙にいこう
08/06/23 17:23:56
それは違う。質問者がVBAを×にしてるからだい
14:名無しさん@そうだ選挙にいこう
08/06/23 18:22:45
>>1乙
登場人物紹介GJ!www
15:名無しさん@そうだ選挙にいこう
08/06/23 18:39:51
>>13
それは事実と違うように思うが。
前スレの例えばどの質問のこと?
16:13
08/06/23 18:44:33
>>15
>>12にまずつっこめよ。
マクロ(VBA)スが質問を撃破できなかった事実はない。
よく考えずに安易に回答(反応弾使用)する者が多い事は
事実だと認めるところだがな。
17:名無しさん@そうだ選挙にいこう
08/06/23 18:47:45
>>16
カレンダーも勤務表もできなかったくせに
18:名無しさん@そうだ選挙にいこう
08/06/23 18:53:53
>>16
在庫管理もな。
>>17
カレンダーはどんな質問だった?
祝日自動計算とかだったらできなくて当たり前だからね。
19:名無しさん@そうだ選挙にいこう
08/06/23 19:07:59
保存時に、ある処理をやらせてから終了させる為に
以下のように記載したのですが、どうしても保存処理が
二回走ってしまいます…
[ThisWorkBookシート]
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'保存(ファイル保存)処理
Call TyinKo
End Sub
[Module1]
Sub TyinKo()
(中略)
ActiveWorkbook.Save
ThisWorkbook.Saved = True '←これで標準の保存処理だますつもりだった
End Sub
やりたいのは、上書き保存時に名前を変えて保存させることです。
それで保存処理が動いた時に、上で略された処理を動かし
ファイルを保存したいのですが前述通りになぜか二回…
もう死にたいです
20:名無しさん@そうだ選挙にいこう
08/06/23 19:13:46
Variable
Battloid
Answer
21:自称回答者
08/06/23 19:17:12
>>19
>もう死にたいです
心療内科を受診してみてはどうだろうか。
22:19
08/06/23 19:18:54
そういう煽りはいいんです。ただひたすら愛が欲しい、歌丸です。
23:名無しさん@そうだ選挙にいこう
08/06/23 19:22:58
>>18
実現してるカレンダーあるよ。仕事でも使わせてもらってる
URLリンク(www.vector.co.jp)
24:名無しさん@そうだ選挙にいこう
08/06/23 19:31:12
>>23
それ来年もちゃんと使えるの?
25:名無しさん@そうだ選挙にいこう
08/06/23 19:40:41
>>23
君、けっこうVBA使えるだろ。
VBA使えるとうらやましいな。なんでもできて。
26:名無しさん@そうだ選挙にいこう
08/06/23 19:44:01
>>24
とりあえず来年の5月と9月の国民の休日が正しいことは確認した。
27:19
08/06/23 19:58:08
俺の首<カレンダー
これがエク質ヌクモリティなの!?
28:名無しさん@そうだ選挙にいこう
08/06/23 19:59:20
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 初心者
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBA ファイル操作 シート ダイアログ
A.xlsとB.xlsというブックがあります。
A.xlsにてマクロを起動すると、ファイルが選択できるダイアログが出てきて、
B.xlsを選択するとB.xlsの「シートC」というシートをA.xlsに追加するということを実現したいです。
・追加する場所はどこでもいいです。(できればA.xlsの先頭)
・選択するファイルの(例えばB.xls)のシート名は「シートC」という風に固定されていますが、今後変わる可能性があるので
できれば、シートを選択できればベターです。
・もしくは、選択したB.xlsのシートCの(A1:C10)をA.xlsのシートCのA1にコピーという仕様でもかまいません。
以上よろしくお願いします。
29:名無しさん@そうだ選挙にいこう
08/06/23 20:02:04
>>19
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As Boolean)
SaveAsUi [名前を付けて保存] ダイアログ ボックスが表示される場合 True が渡されます。
Cancel イベントが発生すると False が渡されます。イベント プロシージャでこの引数に True を設定すると、プロシージャが終了しても、ブックは保存されません。
30:名無しさん@そうだ選挙にいこう
08/06/23 20:02:52
>>28
マクロの自動記録
31:名無しさん@そうだ選挙にいこう
08/06/23 20:15:43
>>1は東海掲示板に同スレを立てた阿呆です
IPを調べると三重県からですた
スレリンク(toukai板)
誤爆もほどほどに
32:名無しさん@そうだ選挙にいこう
08/06/23 21:12:35
/)_/) ( ・分かる人はできるだけ回答して下さいませ。
< ゚ _・゚> .。oO( ・回答がなくてもキレないで。急いでいても催促は3日以上開けて。
ノ) / | ( ・自己解決したらその解決手段を他の人の参考の為に書いてね。
\(_,,,_,,,)
いつの間にかに消えて、こいつ迷子になっちゃった!
33:名無しさん@そうだ選挙にいこう
08/06/23 21:28:50
画像から文字を読み取ってエクセルに出力したいのですが
どうすればいいですか?
34:名無しさん@そうだ選挙にいこう
08/06/23 21:43:56
>>1
ふつう、まちBBSと2ちゃん間違えるかぁw
三重県人痛いやっちゃな〜
35:名無しさん@そうだ選挙にいこう
08/06/23 21:56:50
>33
OCRソフトで画像→文字変換して、文字列コピーしてエクセルに貼り付けたらだめですか?
それをエクセルで自動化したいということですか?
36:名無しさん@そうだ選挙にいこう
08/06/23 22:01:06
>>35
URLリンク(ossan.fam.cx)
これを読み込んで、エクセルで計算などしたいんですけど・・・
そのOCRソフトっていうのでやってみたんですけど
1つのセルに縦の文字が全部はいっちゃって・・・orz
どうすればいいですかね?
自力入力・・・?
37:名無しさん@そうだ選挙にいこう
08/06/23 22:08:34
OCRソフトの出力みせれ。
それか聞いてる暇あったら手入力したほうが速いぞきっとw
38:名無しさん@そうだ選挙にいこう
08/06/23 22:29:16
>>37
URLリンク(www.dotup.org)
パス、1111です
39:名無しさん@そうだ選挙にいこう
08/06/23 22:46:46
>>1
デフォルトの名前で気づけよwwwwwIP表示されてる時点で気づけよ
40:名無しさん@そうだ選挙にいこう
08/06/23 22:55:19
>>38
「1つのセルに縦の文字が全部」って、どういう意味?
一部の読み取りミスは仕方ないとして、コピペしたらちゃんとセルごとに数値が分かれて入ったけど。
あと、OCRソフトによっては設定で「英数字のみ」とか「数字と記号」みたいなのがあると思う。
それを使うと数字の読み取り精度が上がる。
41:前スレ978
08/06/23 23:07:08
再投稿します。
よろしくお願いします。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい(少々)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 EXCEL 置換 ワイルドカード
セル内の先頭にある半角スペースを消したいのですが
検索する文字列: *
置換後の文字列:*
では対象が全て*になってしまいます。
「置換後の文字列」には何を指定するのでしょうか?
>前スレ 984・987殿
対象は先頭にある半角スペースです。
それ以外の半角スペースは残します。
42:41
08/06/23 23:07:42
またsageてしもた(汗
よろしくお願いします。
43:名無しさん@そうだ選挙にいこう
08/06/23 23:12:06
sageの意味を知らないひとがいるな
44:名無しさん@そうだ選挙にいこう
08/06/23 23:13:17
>>41
a1にあるとしたら
=IF(LEFT(A1,1)=" ",RIGHT(A1,LEN(A1)-1),A1)
45:41
08/06/23 23:26:58
>44殿
置換のワイルドカードでの指定方法が分かればお願いします。
VBAから実行してセル内の文字列を直接変換します。
置換後の文字列の指定方法が分かれば自動記録でコードは得ようと
思っていましたので特にVBAでとは記述しませんでした。
後出しですみません。
また、回せばできるのですがこの様な場合のワイルドカード指定方法
があったような気がしたので質問させていただきました。
Selection.Replace What:=" *", Replacement:="*", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
46:名無しさん@そうだ選挙にいこう
08/06/23 23:34:09
>>28
Sub a()
Set b = ThisWorkbook
Sheets.Add before:=Sheets(1)
Workbooks.Open Application.GetOpenFilename("Microsoft Excelブック,*.xls")
Worksheets("シートC").Select '保存時の状態によってはSelectしないとエラーになる
ActiveSheet.Cells.Copy Destination:=b.ActiveSheet.Range("A1")
ActiveWorkbook.Close
End Sub
47:名無しさん@そうだ選挙にいこう
08/06/23 23:36:29
>>41
TRIM()じゃだめか
48:名無しさん@そうだ選挙にいこう
08/06/23 23:39:26
WORDだとワイルドカードで行頭を指定できるからそっちでやる手もある
49:名無しさん@そうだ選挙にいこう
08/06/23 23:40:31
>>45
そういうのは「正規表現」というのを使うんだけど、それよりもこれじゃダメか?
Sub 選択範囲の先頭のスペースを消す()
For Each i In Selection
i.Value = LTrim(i.Value)
Next i
End Sub
50:名無しさん@そうだ選挙にいこう
08/06/23 23:42:14
>>47
末尾のスペースまで消えてしまう
51:名無しさん@そうだ選挙にいこう
08/06/23 23:43:15
>47,49殿
Trimがあったか!
あれから色々とサイトを巡ってみましたが、置換では無理で
回さないとだめみたいですね。
ありがとうございました。
52:名無しさん@そうだ選挙にいこう
08/06/23 23:45:35
>50殿
ご心配ありがとうございます。
承知しておりますので大丈夫(?)です。
53:35
08/06/24 00:16:41
35です。
>38 >40
Excel2003でやってみました。貼り付ける方法により結果が異なりました。貼り付け先をA1と仮定します。
[Ctrl]+[V]だとA列にだけ貼り付けられました。
メニュー−編集−形式を選択して貼り付け−テキスト だと40さんの言うとおり各セルに分かれて格納
されました。参考まで。
54:名無しさん@そうだ選挙にいこう
08/06/24 00:22:58
>>53
うちも2003だけど、Ctrl+Vでちゃんと分かれたよ?
手順としては、まずExcelを起動してブックを開く
次にメモ帳でtxtを開くいてCtrl+A、Ctrl+C
エクセルに切り替えてA1をクリック、Ctrl+V
ポイントは、Excelを先に起動すること。先にメモ帳を起動するとコピペがうまくいかない。
55:名無しさん@そうだ選挙にいこう
08/06/24 06:33:25
前すれでLTrimってかなり一瞬ででてたきがするんだけど・・
56:名無しさん@そうだ選挙にいこう
08/06/24 08:19:05
>>55
元の質問がテンプレに沿ってなくて、あの時点ではVBAの可否が不明だった
57:41
08/06/24 08:25:37
>55殿
見落としてました(汗
遅くなりましたが前スレ998殿、ありがとうございました。
また、気が付かずに失礼しました。
また、>41でレス番を間違えました。
前スレ997殿、失礼しました。
58:名無しさん@そうだ選挙にいこう
08/06/24 09:28:50
すみません、簡単な質問かもしれませんが、
シートを10個作って、シート1の行4:列5あたりに『8:50〜10:00』と書いたら
シート4,7あたりの行4:列5にも『8:50〜10:00』と反映されていました。
関数は調べたらなかったのですが、これはどういった現象でしょう?
すみませんがお願いします・・・。
59:名無しさん@そうだ選挙にいこう
08/06/24 09:38:21
>>58
Ctrlを押しながらシートタブをクリックすると、複数のシートにいっぺんに同じデータを入力できるという機能がある。
60:名無しさん@そうだ選挙にいこう
08/06/24 10:13:26
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ほんの少し
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 EXCEL 0になる 計算結果 自作関数 関数 ファイルを開く
VBAで自作した関数の入っているセルの値が
ファイルを開いた時に0になってしまっているときがあります
保存時にはきちんとした計算結果が入っていたはずなのにです。
この状態で手動で再計算しても0のままです
(引数の入っているセルに数字は入っています)
関数の引数になっている値を変動させると
正しい計算結果が表示されるようになります。
そのファイルはネットワーク上の共有フォルダに置かれています
どのような原因が考えられますか?
61:名無しさん@そうだ選挙にいこう
08/06/24 10:39:02
>>60
・自作関数が間違っている
・元の引数で計算すると0になるのが正しい
62:名無しさん@そうだ選挙にいこう
08/06/24 11:02:35
>>61
レスありがとうございます
自作関数についてですが、返り値は想定した正しい値が返ってきます
もちろんもとの引数で計算したら0ではない数字になるのが正しいです
正しい計算結果が入った状態でファイルを保存>翌日に開く
と、計算結果の欄(関数が入っているセル)が0になっている時があるんです
ファイルを開いた時に計算がされてないような状態になっているんです
もちろん、自動計算はオンになっていますし、
0になってる状態で手動再計算しても0のままです
毎回0になったり、決まったシートだけや決まったブックだけなら
なにか原因があるんだろうと思えるのですが、
今の状態は再現させる条件もよくわからなくて
途方にくれているような状況なのです
63:名無しさん@そうだ選挙にいこう
08/06/24 11:04:37
ファイルを名前を付けて保存する際にVBAで
A1セルの内容を初期表示させたいのですが
どうすればよいのでしょうか。
64:名無しさん@そうだ選挙にいこう
08/06/24 11:15:58
>>62
Excelのバージョン違いとか、複数のExcelから同時に開くとうまく動かないとか
とりあえずファイルをさらしてみるとわかる人がみつかりやすいかも
65:名無しさん@そうだ選挙にいこう
08/06/24 11:21:10
うpした方が早いと思う
66:名無しさん@そうだ選挙にいこう
08/06/24 11:26:25
>>63
「初期表示」の意味がよくわからんが、カーソルをA1セルに合わせておきたいってんなら
Workbook_BeforeSave に Range("A1").Select って書いとけばいい
67:名無しさん@そうだ選挙にいこう
08/06/24 11:29:49
>>62
URLリンク(support.microsoft.com)
これに該当しているかどうかの確認も
68:名無しさん@そうだ選挙にいこう
08/06/24 11:43:27
>>66
例えば「shine.xls」を開いたら、名前を付けて保存を
押すと「shine.xls」が反転した状態で表示されますよね。
あれです。あれをA1セルの内容に変えたいんです。
69:名無しさん@そうだ選挙にいこう
08/06/24 11:44:22
>>64-65さん>>67さん
レスありがとうございます
まずは>>67さんの教えて下さったサイトをみていろいろ試してみます
いま、たまたま0になる現象が再現できたのでいくつか実験してみました
オプション>計算方法で再計算ボタンクリックだと再計算されないんですが
ctrl+alt+F9をやったらとりあえず再計算できました
僕が手動再計算の方法を間違えていたのかな
お騒がせして申し訳ありません
あとはファイルオープン時にきちんと再計算するようになれば
よさそうなので、他の方法も試してみます
皆さん本当にありがとうございました
70:名無しさん@そうだ選挙にいこう
08/06/24 12:06:24
二つのグラフをそれぞれ右と左の軸に割り振って表示したとき
どっちのグラフが右でどっちが左かということが分からないと思うのですが
これはどうすれば良いのでしょうか?
論文などをみていると矢印などが書かれていますが
自分で書き入れるというの一般的なのでしょうか?
もっと良い方法があれば教えて下さい。
71:名無しさん@そうだ選挙にいこう
08/06/24 12:10:17
>>68
こんな感じかな?
ファイル名が " " で囲まれちゃうんだけど、これを消す方法がわからん。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
S = Application.GetSaveAsFilename(InitialFileName:=Range("A1"))
If S <> False Then
Application.EnableEvents = False
ActiveWorkbook.SaveAs Filename:=S
Application.EnableEvents = True
Saved = True
End If
Cancel = True
End Sub
72:名無しさん@そうだ選挙にいこう
08/06/24 12:21:53
罫線が太くて嫌なんですがもっと細くなりませんか?
ギュウギュウってして痛いです(/ω\)
73:名無しさん@そうだ選挙にいこう
08/06/24 12:30:04
>>72
罫線のスタイルを選ぶ画面で、「なし」の次にある点線が、印刷すると一番細い実線になります。
太さをもっと微妙に調節したい時はオートシェイプで枠線に重ねて直線を引くしかありません。
74:名無しさん@そうだ選挙にいこう
08/06/24 12:36:51
2003を使っています。
グラフにタイトルをつけるためにはどうしたら良いのでしょうか?
75:名無しさん@そうだ選挙にいこう
08/06/24 12:41:19
>>69
再計算にはF9、Shift+F9、Ctrl+Alt+F9、Ctrl+Alt+Shift+F9の4種類あって、
それぞれ再計算される範囲と条件が異なる。4番目がブック全体を強制再計算。
どの段階で再計算されるかを調べれば原因がわかるかも。
76:名無しさん@そうだ選挙にいこう
08/06/24 12:43:08
A1セルが">"の時B1に=C1>1
A1セルが"<"の時B1に=C1<1
というふうに式を変えたいときは、VBAを除けば
ifで分けるしかありませんか?↓のような感じで・・
=if(A1=">",C1>1,C1<1)
indirect等、関数で直接数式自体を戻り値として入れることは無理でしょうか
77:名無しさん@そうだ選挙にいこう
08/06/24 12:43:12
>>71
一週間悩んでいた問題が氷解しました。
>ActiveWorkbook.SaveAs filename:=S
ちきしょぉぉおこんなことができたのかぁああ
と絶叫してみましたがどうみても神回答者です
本当にありがとうございました
78:名無しさん@そうだ選挙にいこう
08/06/24 12:43:55
>>74
グラフを右クリックして「グラフのオプション」→「タイトルとラベル」
79:名無しさん@そうだ選挙にいこう
08/06/24 12:47:58
>>77
違うぞ。保存ダイアログにファイル名の初期値を設定してるのはこの部分
S = Application.GetSaveAsFilename(InitialFileName:=Range("A1"))
------------------------
80:名無しさん@そうだ選挙にいこう
08/06/24 12:59:53
二つのグラフを同時に表示させたとき
片方のグラフがもう一つのグラフに覆い被さって部分的に
見えなくなってしまいます。
どちらが上に来るかというのはどうやって設定するのでしょうか?
81:名無しさん@そうだ選挙にいこう
08/06/24 13:01:44
>>80
クリックした方が上
82:名無しさん@そうだ選挙にいこう
08/06/24 13:03:41
>>80
グラフを右クリックして「最前面に移動」「再背面に移動」で順番を変更できる
3つ以上重なってる時はクリックする順番をよく考えること
83:名無しさん@そうだ選挙にいこう
08/06/24 13:06:02
>>76
別の所にあらかじめ記号と完成した計算式を並べておいて、
その中からVLOOKUPなどで計算結果を選択するという方法もある
84:名無しさん@そうだ選挙にいこう
08/06/24 13:10:50
>>76
EVALUATE()
85:名無しさん@そうだ選挙にいこう
08/06/24 13:14:26
とりあえずオフィスを使える(使いこなす、大手に就職しても困ることなく使いこなせる)ようになりたいんですけど
どうやってやっていけばいいですか?
関数など基本的なことは、高校のときにやったのである程度はできます。
86:前スレ982
08/06/24 13:22:46
持ち越しですみません。どなたかこれ分かる方いないでしょうか。
これのせいでもう4日くらい帰れていないんです
982 名前:名無しさん@そうだ選挙にいこう[] 投稿日:2008/06/23(月) 13:45:32
money.csv (MoneyFile)
田中,貸した,12000,未納
というデータを
Open MoneyFile For Binary Access Read Write As intFF
(中略)
buf2 = Split(buf, ",")
で読み込み、
ReDim Preserve buf2(3)
として「未納」の配列要素を切り捨てた後で書きだしているのですが
思った通りのデータになっているものの「未納」の部分が消えません。
更新前のデータがそのまま残っている状態です。
つまり
田中,貸した,12000,未納
↓
田中,貸した,12000
としたいのですが、どうすれば良いのでしょうか。
バイナリアクセスでは、行のバッファを置き換える事はできないのでしょうか。
87:名無しさん@そうだ選挙にいこう
08/06/24 13:37:46
>>85
大手だと人の作ったシートにデータを入れて分析結果を見るだけ、みたいなことのが多いよ。
自分でいちいちマクロとか作ってるのは、むしろ小さい会社。
あと、仕事で必要なことは研修で教えてくれるから、Excelの知識なんかより社会常識を
しっかり身につけておいた方がいい。
88:名無しさん@そうだ選挙にいこう
08/06/24 13:39:34
>>86
> 思った通りのデータになっているものの「未納」の部分が消えません。
未納が消えないってことは、思った通りになってないってことじゃないの?
日本語がおかしいよ。
89:名無しさん@そうだ選挙にいこう
08/06/24 13:43:09
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 EXCEL スピンボタン 負の係数 マイナス
y=ax^2+bx+cという式でスピンボタンを使ってaを負の値に指定出来るように
したいのですが、どうすれば良いのでしょうか? かなり調べたつもりですが
分かりません。どなたかお助け下さい。
90:名無しさん@そうだ選挙にいこう
08/06/24 13:44:48
>87
わかりました。
エクセルの知識は放置してタイピングやったり
本読んだりします。
91:名無しさん@そうだ選挙にいこう
08/06/24 13:45:44
>>75
ありがとうございます!
今実験してみようと思ったんですが
障害が再現できないので、また障害が起きたときに試してみます
92:86
08/06/24 13:50:59
>>88
言葉が足りなかったです。つまり
aaaaa,xxx
の行バッファに対し、bbbbbの行バッファを
書き出せているのに、xxxがそのまま残っている
ということです。つまり
bbbbb,xxx
になってしまうのです。
この「bbbbbを出力できている処理」が思った通り
に動いているということです。
つまり思った通りのデータ(bbbbb)で上書いてるのに
消えないデータ(xxx)があるということです。
93:名無しさん@そうだ選挙にいこう
08/06/24 14:04:10
>>73
なるほど
ありがとう
94:名無しさん@そうだ選挙にいこう
08/06/24 14:25:37
>>92
バイナリでその部分の文字だけ上書きしてるんだから、当たり前の動きじゃないかな?
消すというのが無謀かと。
同じサイズの空白文字列で上書きすれば、見た目は消えるんじゃない?
余分な空白のゴミが残るけど。
そもそもは、CSVをバイナリで扱う意味が分からんから答えつかないんだと思うよ。
95:名無しさん@そうだ選挙にいこう
08/06/24 14:26:16
>>92
データを削ってそれ以降の部分を前に詰めたい、あるいは途中にデータを追加して全体を後ろにずらしたい時は、
ファイル全体を一度に読み込み、加工してまた全体を書き出すしかありません。
96:名無しさん@そうだ選挙にいこう
08/06/24 14:28:43
バイナリモードでできるのは、基本的にファイルサイズの変わらない置換だけ。
文字数が増えたり減ったりする場合はテキストモードでやる。
97:80
08/06/24 14:34:08
>>82
2003を使っているのですが
そのような設定項目は見あたらないのですが・・・
オプションのところにも見あたりません。
98:名無しさん@そうだ選挙にいこう
08/06/24 14:38:20
>>89
フォームのスピンボタンはマイナスにできない。
コントロールツールボックスのスピンボタンを使いなされ。
99:名無しさん@そうだ選挙にいこう
08/06/24 14:43:16
>>97
グラフエリアを右クリックだよ?
URLリンク(kissho.xii.jp)
100:名無しさん@そうだ選挙にいこう
08/06/24 16:29:34
>>99
私が言っているのは一つのグラフの中に2つのグラフを散布図として
乗せた場合という意味なのですが・・・
何卒よろしくお願い致します。
101:92
08/06/24 16:30:26
>>94
そうなんですよね。実は最初は固定長のデータを扱っていたので
書き変わるたびに書き直すと遅くなるなぁと思い、バイナリで
扱うようにしたんですけど、それから機能追加でユーザ名を
追記するようにしたんで、せっかくバイナリに合わせて処理を
盛り込んで(というかガラッと変わった)時間と手間をかけたのに
戻したくないなぁというかバックアップ取ってないなぁと思い
どうにかならないかなぁあの女子高生かわいいなぁとか思ってました。
どうもすみませんでした。
>>95
やっぱりそうなんですね。諦めがつきました。ありがとうございました。
>>96
それが基本ですよね。見よう見まねでググってコピペして辻褄合わせて
作ったソースがですがどう見ても破綻です
本当にありがとうございました
102:名無しさん@そうだ選挙にいこう
08/06/24 16:37:09
>>83>>84
ありがとうございます!
すごい!
103:名無しさん@そうだ選挙にいこう
08/06/24 17:22:14
92なんですけど別件なので数字コテ外します。
ファイル操作は、「読み取り」か「書き込み」の
どちらかしかおこなえないのでしょうか。例えば
1234,5678,01
2222,3333,14
6666,4444,55
のようなcsvを読み込んで、処理の中で二行目のレコードの
14を15にしたい場合はバイナリモードで読んで書いてで良い
と思うのですが、
1234,5678,01
2222,3333,14,更新中
6666,4444,55
のようにしたい場合はサイズが変わるのでバイナリモードでは
対応できず、Outputでアクセスして書き込むと思うのですが、
その場合一度INPUTで開いて読み込み、すぐにOutPutで書き込む
しかないのでしょうか。複数人が同時にアクセスする事を
想定しているため、できれば読んだ時点で処理して書き込みたい
のですが・・・
104:103
08/06/24 17:50:52
それとも、可変長の要素を追加したい場合は
あらかじめレコードの長さを確保して
2222,3333,14," " '←6バイト
バイナリモードで読み込み・書き込み
2222,3333,14,"更新中" '←6バイト
のようにした方が良いのでしょうか?
まぁ6バイト程度ならいいんですが実際のコードでは
20バイト(Winのユーザ名)確保する必要があるんですが
他に上手い方法はないでしょうか…
105:103
08/06/24 18:51:14
また流れを止めてしまった…
>104の例は、""で括られた中が6バイトだということです。
2chなので全角スペース3つ入ってますが実際は半角スペースが6つです。
それを全レコード用意して、書きこんだりスペースで埋めたりした方がいいのかなぁ…と。
ついでに質問しますと、この6バイトのスペースに2バイトの文字を入れ、残り4バイトを
スペースでパディングしたい場合どうしたらいいんでしょうか。
106:名無しさん@そうだ選挙にいこう
08/06/24 19:00:40
無理
教えても無駄
DB使え
消えてくれうざいから
107:名無しさん@そうだ選挙にいこう
08/06/24 19:02:33
根本的な仕組みも分かろうとしないで
糞みたいな質問連発してる奴に何言っても無駄
108:名無しさん@そうだ選挙にいこう
08/06/24 19:16:02
すみません、どなたか教えて下さい!!
XP,Excel2003です。VBAはわかりません。
複数の関数の組み合わせなのですが、よろしくお願いします。
わかりにくい説明ですみません。
Aシートにコードが入力されています。
Bシートにコード、文字列、数値が入力されています。
AシートのコードでVLOOKUPを使い、Bシートから数値を呼ぶことはできるのですが、
数値が空白の場合は、空白にする。B列の文字も検索したい場合はどのようにすればよろしいでしょうか?
例
Aシートには、コード001が入っています。
Bシートから、コード001、「あ」の行を検索し、数値をもってきて、空白の場合は空白にしたいです。
A列 B列 C列 D列
1行 001 あ 10 空白
2行 001 い 20 30
3行 002 あ 30 空白
109:名無しさん@そうだ選挙にいこう
08/06/24 19:21:19
Dの空白のセルに’を入れておく
110:103
08/06/24 19:30:38
>>106-107
素直にわからないって言えばいいのに…
高度過ぎる質問してごめんね。
自己嫌悪に陥らないでね。
111:名無しさん@そうだ選挙にいこう
08/06/24 19:37:21
>>109
108です。
すみません、既に何ファイルもデータが入力済なので、
今から入れられないんです・・・
112:名無しさん@そうだ選挙にいこう
08/06/24 20:52:33
>>103
まさかと思うけど1つのファイルを共有して複数人で同時に開き、書き換えようとしてる?
だったらおとなしくAccess使え。
113:名無しさん@そうだ選挙にいこう
08/06/24 20:54:58
>>108
vlookupでDが空白なら空白を返すのは分かった
Aシートはコード、文字、数値、数値の並びでコードをかけばそれぞれを呼び出したいの?
Dが空白だと他全てが空白になるようにしたいの?
C列に空白はできるの?その場合は?
空白じゃない場合はB列の文字とCの数値をつなげればいいの?
CとDがある場合はどうするの?
114:名無しさん@そうだ選挙にいこう
08/06/24 20:57:43
>>108
=IF(VLOOKUP(A2,B1:C2,2)="","",VLOOKUP(A2,B1:C2,2))
ifでvlookup先のデータが空白「""」なら空白「""」、そうじゃなければ通常のvlookup
って感じでどう
115:名無しさん@そうだ選挙にいこう
08/06/24 21:14:54
>>100
そういうのを後出しって言うんだよ。>>3に書いてあるでしょ。
グラフエリアの中にプロットされた線や点を右クリック、データ系列の書式設定、系列の順序。
この中で下にある物が重なった時前に出る。上にある物は隠れる。
116:名無しさん@そうだ選挙にいこう
08/06/24 21:23:46
>>104
単に可変長のデータを置き換えたいだけなら
2222,3333,14,"更新中"," "
みたいに余った部分をコンマで区切って、5番目のデータを無視するという方法がある。
この方法なら高速にファイルを更新できるから、排他制御っぽいことも不可能ではない。
やめといた方がいいと思うけど。
117:名無しさん@そうだ選挙にいこう
08/06/24 22:39:44
xp 2003 vba?って何?
というレベルのものです
質問です
2009/5/20と表記されているセルを日にちの20とだけ表記したいんです
そのセルはDATEを使って2009/5/20と表しています
どなたか教えてください
118:名無しさん@そうだ選挙にいこう
08/06/24 22:40:56
書式設定でd
119:名無しさん@そうだ選挙にいこう
08/06/24 22:45:16
>>103
>>2の7あたり
120:103
08/06/24 23:01:28
素直にわからないって言えばいいのに…
121:名無しさん@そうだ選挙にいこう
08/06/24 23:07:21
>>117
どうしてDATEつかってるんだろ?
=DAY(DATE(2008,6,20))
122:103 ◆hjeX5VxSgg
08/06/24 23:10:40
>>110
偽者乙
>>112
SAW(ソウ)です。Access?使えたら苦労しません!インスコされていません!
>>116
うーんちょっとおっしゃる意味がよくわからないです・・・
5番目を・・・えーと・・・
>>119
>VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能でExcelに関係ないことも出来ます。
VBAはすごいですよね。
>>120
偽者乙
123:名無しさん@そうだ選挙にいこう
08/06/24 23:17:52
>>118
>>121
ありがとうございます
124:名無しさん@そうだ選挙にいこう
08/06/24 23:43:36
>>122
フィールドは可変長だがレコードは固定長ってこと。
どこかしら固定長の部分がないとランダムアクセスは不可能。
別解として、アクセス中を示すフラグを別ファイルに置くという手もある。
つーても、>>103には理解できなさそうだなあ…
もっと単純に、1レコード1ファイルにするという力業もあるにはあるが…
そこまでしてExcelでデータベースもどきを構築する意味があるのかどうか。
開発にかかる人件費を考えたらAccessを買った方が早いと思うんだが。
125:名無しさん@そうだ選挙にいこう
08/06/24 23:44:53
それしかすることないんだよ
126:名無しさん@そうだ選挙にいこう
08/06/24 23:49:56
前スレの730ですが 以下に前回の質問を記します
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBA 他のブック 参照 ファイル名
あるフォルダに aa-01-斉藤.xls aa-02-田中.xls … といったように aa-**(連番)-**(名前).xls といったファイルが複数あって
それぞれの「入力用シート」というシートの A2〜A12 に データが入っています。
しかし、A2〜A12にすべてデータが入っているわけではなく、例えば aa-01-斉藤.xlsの A2には「バナナ」A3には「リンゴ」といったデータがありA4〜は空欄
aa-02-田中.xls にはA2には「卵」といったデータがあり A3〜は空欄です。
これらのデータを まとめ.xls といったファイル にまとめる。
例としては まとめ.xlsの 「集計シート」の B1に 「バナナ」 B2に 「リンゴ」 B3に 「卵」 ・・・ のように
それぞれのブックのA2〜A12までの入力されたデータのみを抽出したいのです。
*データは上につめてありますので A2とA4にデータがあってA3が空欄ということは無いです。
*ファイルは50個程度あります。フォルダの移動はいくらでもできます。
*まとめるデータは aa-01 → aa-02 → といったように連番順にまとめたいです。
以上を実現する方法をご教授願います。
________________________________________
以上が前回の質問でこれは解決したのですが
別に aa-1斉藤.xls aa-2田中.xls・・・ aa-10小倉.xls aa-11中村.xls aa-**(連番)**(名前).xls
というファイルの処理もしたい場合、どうすればいいのでしょうか?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5393日前に更新/250 KB
担当:undef