Excel総合相談所 53

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
Excelに関する質問は、ここで!

▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に>>2-20あたりの注意書きや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やヘルプで検索してみてください。
  ttp://www.google.co.jp/

前スレ(52):http://pc10.2ch.net/test/read.cgi/bsoft/1167923180/
2名無しさん@そうだ選挙にいこう:2007/01/26(金) 19:11:22
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・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 テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
  チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
  ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
3名無しさん@そうだ選挙にいこう:2007/01/26(金) 19:11:27
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼環境・書式
  ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
  ・ 条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
  ・ 行の高さを0.25きざみ以下の単位で指定する
  ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
  ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
  ・ 祝日を判断する (作業セルに祝日を列挙、VBA)
  ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
  ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
  ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
  ・ 罫線幅の自由指定
  ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
  ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)

 ▼操作
  ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
  ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
  ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
  ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
  ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
  ・ 1セルを分割 (分割したいセル以外を結合)
4名無しさん@そうだ選挙にいこう:2007/01/26(金) 19:11:32
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)

 ▼数式・関数
  ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
  ・ 関数式でセルの選択状態を取得する (VBA)
  ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
  ・ 入力したセルに結果を返す (VBA)
  ・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
  ・ 値の書き換え、値の保持 (VBA)
  ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
  ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
  ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)

 ▼VBA
  ・ ExecuteExcel4Macroの参照で空セルと0値を区別する
  ・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
  ・ VBのコントロール配列と同じような操作をしたい
   (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)

 ▼ユーザーフォーム
  ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)

 ▼グラフ
  ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
   (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
  ┌┐
  〜〜
  ||
5名無しさん@そうだ選挙にいこう:2007/01/26(金) 19:11:37
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。

また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。
6名無しさん@そうだ選挙にいこう:2007/01/26(金) 20:13:15
ハ〜ぁ、バカな質問とバカな回答の繰り返しか
レベル落ちたなぁ〜
7名無しさん@そうだ選挙にいこう:2007/01/26(金) 20:17:54
>>6
おまいさんの実力みせてもらおう
8名無しさん@そうだ選挙にいこう:2007/01/26(金) 20:28:38
前スレ996です
馬鹿でサーセンwwwww自己解決しますたwwwwwww
9名無しさん@そうだ選挙にいこう:2007/01/26(金) 20:28:53
>>6のレベルじゃ、スレのレベルが落ちたかどうかなんて判断できないだろ
例え落ちたとしても、>>6の及び付かぬ領域だからな
10名無しさん@そうだ選挙にいこう:2007/01/26(金) 21:04:13
スグ興奮しちゃって、カワウィー
11名無しさん@そうだ選挙にいこう:2007/01/26(金) 21:11:50
なぜこんなに簡単に釣れるのだろう…
12名無しさん@そうだ選挙にいこう:2007/01/26(金) 21:16:41
この時期は毎年オコチャマが集まるからしかたないね
13名無しさん@そうだ選挙にいこう:2007/01/26(金) 21:31:18
エクセルで、文字色変更を普通にしようとすると
20秒くらいかかります。
ひとつのセルですし、他のアプリでメモリくってるわけでもないのに
文字色変更がやたら遅いです。

セルの塗りつぶしはさっとできるんですけどね・・・。

xp home Pen4 2.2G メモリ512
エクセルは2002です。
14名無しさん@そうだ選挙にいこう:2007/01/26(金) 22:56:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

   A   B
1 | 3.4 | 2.3
2 | 5.6 | 1.7
3 |空白| 空白
4 |空白| 空白
5 |12.3 | 1.3
:
10| 2.4 | 3.4
11|空白| 空白
12|空白| 空白
13|14.4 | 2.4
:

上のような一つのシートに空白2行で区切られた複数行2列のデータを
それぞれ別々のシートに分けたいのですが、データ数がとても多いので
簡単な方法はないでしょうか?
15名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:00:47
>>13
Excel完全に消してから、再度インストールしなおしてみ。
16名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:02:21
>>14
その説明じゃ、どうしたいのかが、誰にも伝わらないかと。
17名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:06:08
>>13
それはエクセルを立ち上げて最初の文字色変更時だけですか?
18名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:13:40
>>14
1行空白(連続しない空白行)が存在する可能性はあるの?
あるとしたらその場合はどうするの?

最後以外で3行以上の連続空白行が存在する可能性はあるの?
あるとしたらその場合はどうするの?

データは数値だけ?
それとも書式も設定してあるの?
19みそ:2007/01/26(金) 23:29:55
エクセルです

複数のセルに入力されている範囲を
まとめて絶対値に変えるのはどうしたらいいすか?

終電行ってしまうまえにだれかぼすけて・・・
20名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:32:52
>>19
別な場所に関数で絶対値を返して、
元の場所に値をコピーして、関数を消去してみそ
21名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:37:21
「A班からF班までが総当りで試合をする。表の灰色の部分(罫線で区切られた右側)
に自分たちの班から見た得点を例えば15-5のように入力すると白の部分(罫線で区切られた左側)には相手の班からみた
得点5-15という表示がされ同時に勝ち数、負け数、引き分けの数、勝ち点、順位が表示されるような表を作れ。
勝ち点は、勝ち・・・3点、負け・・・0点、引き分け・・・1点で計算
順位は勝ち点の多いほうが上位とする。同順も可。」

A B C D E F
A\ ←15-5
B \    
C↑ \   
D5-15 \  
E    \ 
F     \これの「15-5と入力すれば5-15と返す」、「勝ち負けの判定をする」がわかりません。
得点入力のセルは全ておなじ「15」、「-」、「5」を三つに分けてはいけないのです・・・お願いします。m(_ _)m
22みそ:2007/01/26(金) 23:46:43
>>20ありがとうですもう少しバカな俺に
詳しく教えてくださいです申し訳ありません

今使ってる1枚目のシート(ご飯汁)に別のシート(みそ)から
小計を合計しながらひっぱって来てるデータが
B2に=SUM('みそ'!AD96:AD100)
B3に=SUM('みそ'!AD101:AD110)
B4に=SUM('みそ'!AD111:AD150)
とかってえんえんと入ってて、ご飯汁シートのリンク先の
みそシートの範囲をまとめて絶対値にしたいのです
要は
B2に=SUM('みそ'!$AD$96:$AD$100)
B3に=SUM('みそ'!$AD$101:$AD$110)
B4に=SUM('みそ'!$AD$111:$AD$150)
にしたいのです・・・
23名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:46:50
>>14
基本こんなかな?フィルタかけて、空白以外を抽出して、
それぞれをコピーする感じ。
新規シートの位置とか名前は適当にかえてみて

Set r = Worksheets("sheet1").Range("A1:B17")
r.AutoFilter 1, "<>"
Set r = r.SpecialCells(xlCellTypeVisible)
For i = 1 To r.Areas.Count
 Set s = Worksheets.Add
 r.Areas(i).Copy s.Range("A1")
Next
r.AutoFilter
24名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:49:38
>>21
文字列関数使え
特定文字が先頭から何番目にあるかを調べる関数とか、
先頭から何文字、指定位置から何文字を切り出すなんてことが出来る関数もあるので
=「-」の次から末尾まで&"-"&先頭から「-」の前まで
という式で、15-5を5-15に出来る(他にもやり方はあるが、これが一番基本)
左辺と右辺の数字切り出しが出来てしまえば、比較して勝ち負け判定するのは簡単でしょ
25名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:51:26
>>21
LEN FIND LEFT RIGHT IF RANK
で、どうにかなるかな・・・
26名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:53:15
基礎学力のない子ばっかだね
27名無しさん@そうだ選挙にいこう:2007/01/26(金) 23:53:29
>>22
絶対値ttp://ja.wikipedia.org/wiki/%E7%B5%B6%E5%AF%BE%E5%80%A4
ではなく

絶対参照(A1→$A$1)にしたいのか?
そうなると話は別だ
28みそ:2007/01/26(金) 23:56:30
>>27
そうです絶対参照(A1→$A$1)にしたいのです
まとめてやる方法が分らないんです

もう一時間以上F2押してF4を押していく方法で
やってたんですがくたびれました・・・
このままじゃ終電に間に合いそうにありません…
29名無しさん@そうだ選挙にいこう:2007/01/27(土) 00:06:31
>>28
Sub 絶対参照に変換()
  Dim objCell As Range
  For Each objCell In Selection
    objCell.Formula = Application.ConvertFormula(objCell.Formula, xlA1, xlA1, xlAbsolute)
  Next objCell
End Sub

絶対参照に変換したい範囲を選択して、このマクロを実行しろ
例外処理取ってないんで、範囲選択はきちんとしろよ
VBAは嫌とか言うなら俺はパス
3021:2007/01/27(土) 00:06:43
解決しました。
みなさんありがとうございます。
31名無しさん@そうだ選挙にいこう:2007/01/27(土) 00:07:49
>>28
それ一括でやるのは難儀だな。
なぜそうしたいのか分かれば、そっち方面から突破口考えるが?
3231:2007/01/27(土) 00:08:28
ああ、>>29で解決な…w
33名無しさん@そうだ選挙にいこう:2007/01/27(土) 00:14:52
絶対値って中学で習うよね。それを知っていれば$A$1形式を絶対参照と呼ぶってことを知らなくても
絶対値と呼ぶのが明らかに間違ってるってことは解るはずだが、みそは中学生以下か?
そんな子供が終電時間と競りながらExcelと格闘?いったいどういう状況なんだか。
34みそ:2007/01/27(土) 00:15:38
>>29
ありがとうございます
アホなんでVBAはスイッチ切ってあります

>>31
課長の言い付けです。今日中に仕上げねばなりません
35名無しさん@そうだ選挙にいこう:2007/01/27(土) 00:19:43
>>34
VBA無効にしてあるなら、有効にして実行すればいいだけだね。
解決して良かったな。
36名無しさん@そうだ選挙にいこう:2007/01/27(土) 00:42:49
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 弩初心者
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA 分析 連続 一定間隔

下図のようにランダムにABCや●が入ったシートがあります。
1つの列の中で,●と●の間にあるABCの個数が6以上なら,
その個数をQの列にそれぞれ出したいです。

  A  B  C  D  E  F  G  H   I  J  K  L  M  N  O  P  Q

1 B  A  B  B  C  A  ●  B  C  .A  B  C  A  ●  ●  .A  2

2 ●  C  A  B  C  .●  B  .C  A  .●  A  B  C  A  ●  ●  0

3 C  A  B     A  C  .A  ●  .C  .A  B  C  A  C  ●  .B  1

4 A  B  C  ●  B  C  .A   B  A  B  C                 .1

※行3のようにA〜Cのデータの途中に空白がある場合は,その分はカウントしません。
※行4のように空白があってもA〜Cのデータが連続していれば,Q4に数値を算出します。

このような条件の時,どのようにしたらいいのでしょうか。ご教示お願いします。
37名無しさん@そうだ選挙にいこう:2007/01/27(土) 00:55:55
excelで
  1/27
と入力すると、今年であれば
  2007/1/27
に解釈されますが、これを
  2006/1/27
と解釈させる方法は無いでしょうか?
関数使って1年引く方法も考えたんですが、
列を増やしたり削ったりする分かえって作業が
増えてしまう感じだったのでやめました。
  2006/1/27
と入力すれば済むことのなのでしょうが、
  2006/
を入力しないで済むならそうしたいのです。
38名無しさん@そうだ選挙にいこう:2007/01/27(土) 01:02:53
>>37
パソコンの時計を一年前にする
39名無しさん@そうだ選挙にいこう:2007/01/27(土) 01:05:55
そのやりかたは、おじさん賛成できないな。
40名無しさん@そうだ選挙にいこう:2007/01/27(土) 01:33:15
>>36
>1つの列の中で,
は行の間違いだな?
Function CountX(ByVal Target As Range)
Dim c As Range, burstFlag As Boolean, countBurst As Long, counter As Long
burstFlag = False
countBurst = 0
counter = 0
For Each c In Target
If c.Value = "●" Then
If burstFlag Then counter = counter + 1
countBurst = 0
burstFlag = False
ElseIf InStr("_ABC", c.Value) > 1 Then
countBurst = countBurst + 1
If countBurst >= 6 Then burstFlag = True
Else
countBurst = 0
End If
Next
If burstFlag Then counter = counter + 1
CountX = counter
End Function

=CountX(A1:P1)
41名無しさん@そうだ選挙にいこう:2007/01/27(土) 01:47:40
>>40
ありがとうございます!
「1つの列の中で」は「行の中で」の誤りです。スミマセン。
42名無しさん@そうだ選挙にいこう:2007/01/27(土) 01:56:54
Excel2002を使っています。

セルに小数の数字を入力するとき、
小数点以下の桁を指定することは出来ますが
有効数字を指定するにはどうしたら良いのでしょうか?

例えば
322
4.23
0.00567

みたいな感じで上3桁だけ残したい場合にはどうしたら良いのでしょうか?
43名無しさん@そうだ選挙にいこう:2007/01/27(土) 02:03:09
=TEXT(TEXT(A1,"0.00E+00"),"G/標準")
こんな感じかな・・・
4437:2007/01/27(土) 02:10:40
>>38
やっぱ時計いじるのが手っ取り早いですよね。
不整合は起きないだろう、と勝手に思ってますが、
時計を戻し忘れてしまいそうなのが若干心配。。。
45名無しさん@そうだ選挙にいこう:2007/01/27(土) 02:46:07
Excel2002を使っています。

Excelでグラフを書くときに
目盛り線はY軸のものしか付けることが出来ないのでしょうか?
X軸(垂直な目盛り線です)にも付けたいのですがどうすれば良いのでしょうか?
46名無しさん@そうだ選挙にいこう:2007/01/27(土) 02:55:47
>>43
回答ありがとうございます。
でもその式はどのようにして使えば良いのですか?
コピペしてもうまく使うことが出来ないのですが。
47名無しさん@そうだ選挙にいこう:2007/01/27(土) 03:07:20
>>34
すんごい遅レスだが
絶対参照に変換するセル番地が殆ど一緒で
他に可変にする必要が無い という条件下でだが

Ctrl+H
検索対象 AD  なり  みそ'!AD  なり  !AD  なり好きなのを。
置換後を $AD$ なり $AD(列だけ絶対参照にするなら

エクセル98は知らんが2000から数式内の文字列置換は標準で装備されてる。
わざわざVBA使うまでも無い。
48名無しさん@そうだ選挙にいこう:2007/01/27(土) 07:41:03
そして仕事放棄して終電で帰ったのか
49名無しさん@そうだ選挙にいこう:2007/01/27(土) 11:45:17
>>37
置換
5045:2007/01/27(土) 13:05:48
どうなんでしょうか?
お願い致します。
51名無しさん@そうだ選挙にいこう:2007/01/27(土) 13:20:01
52名無しさん@そうだ選挙にいこう:2007/01/27(土) 13:51:35
>>46
↓これのどこが上3桁なの?
例えば
322
4.23
0.00567
53名無しさん@そうだ選挙にいこう:2007/01/27(土) 14:12:53
>>52
有効桁ってことだろう
54みそ:2007/01/27(土) 14:29:12
みなさん本当にありがとうございます
無事今朝方お仕事終わりました。
おはようございますです。

>>47
実はあなたのレス以降さくさくと進めることができました。
数式内の文字列置換が出来ることを忘れておりました。
本当にありがとうございました。
5537:2007/01/27(土) 15:47:21
>>49
置換をすっかり忘れてました。(日付データは1900/1/1からの日数で
保持しているのだろうから置換はできない、と勝手に決め付けてました)
ありがとうございました。
56名無しさん@そうだ選挙にいこう:2007/01/27(土) 17:36:03
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

A(身長):161/165/176/163/169/155....
B(体重): 58/ 46/ 73/ 45/ 57/ 38/...
C(性別): M/ F/ M/ M/ M/  F/...

なる表があり,フィルタ機能で「M」を抽出,身長−体重のグラフを作りました。
次に「F」でフィルタすると先に作ったグラフが「Fのデータ」に変ってしまいます。

先に作ったグラフを固定(後日Excelとしてデータ改定可能な状態で)する方法があれば
教えて下さい。現在はそれぞれCopyして別の表にしてからグラフを作成しています。
57名無しさん@そうだ選挙にいこう:2007/01/27(土) 18:11:33
>>56
グラフを貼り付ける際に図として貼り付ければフィルタを変更してもグラフの要素は変わらないが
データを増やした時には再度グラフを貼り付けなおさないとできない。
俺はVBA無しで思い当たる方法は無かった。
58名無しさん@そうだ選挙にいこう:2007/01/27(土) 18:33:44
>>56
データの抽出にフィルタを使わなければ出来るが
それはVBAじゃないと無理っぽい
5956:2007/01/27(土) 22:31:32
>>57-58

所用有り、遅くなりました。VBAなるものを調べて(勉強して)から出直します。
6056:2007/01/27(土) 22:36:45
途中で送ってしまったので、以下書き直します。
---------------------------------------------

>>57-58

所用有り、遅くなりました。VBAなるものを調べて(勉強して)から出直します。
ありがとうございました。

ただ、調べたり詳しい人に聞けば理解可能かも知れませんので、その「VBAを使った対応策」の
例を教えて頂ければ幸いです。
61名無しさん@そうだ選挙にいこう:2007/01/27(土) 22:43:45
初心者です。A1に1と入れると20とC1に表示されて
A2に3と入れるとC2に140というように対応した数字を
計算でなく表示させるのはどうすればいいでしょうか。
62名無しさん@そうだ選挙にいこう:2007/01/27(土) 23:20:00
>>61
自分で入力すりゃいいだろ
そんな質問文じゃこんな回答しか来ねぇぞ
63名無しさん@そうだ選挙にいこう:2007/01/27(土) 23:37:26
>>62 別表作って、
=VLOOKUP(A1,Sheet2!$A$1:$B$100,2,FALSE)
と入れても動かないんですよ。別表のA1は数字じゃ駄目?
64名無しさん@そうだ選挙にいこう:2007/01/28(日) 07:30:39
>61,63から答えを導き出せる奴は天才
質問の意図が全く分からん
65名無しさん@そうだ選挙にいこう:2007/01/28(日) 07:33:34
C1=IF(A1=1,20,"")
66名無しさん@そうだ選挙にいこう:2007/01/28(日) 09:32:50
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBE 開かない

excelのVBEを開こうとすると、VBEを開けるどころかexcelそのものが閉じてしまいます。
ウィルススキャンをしたところウィルスに感染はしていませんでした。
ちなみにwordのVBEは普通に開けます。
どうすれば正常にVBEが開けるようになれば良いのか、よろしくお願いします。
67名無しさん@そうだ選挙にいこう:2007/01/28(日) 09:59:48
すれ違いかもしれないけど、あえて質問させてもらいます。
エクセルのエキスパート(MOS)の検定とエクセル1級では何が違うのですか?
どちらの方が権威が上なのですか?
68名無しさん@そうだ選挙にいこう:2007/01/28(日) 10:11:58
「権威」なんて言葉は、詐欺師・役人・成金が使う言葉
気にするな!
69名無しさん@そうだ選挙にいこう:2007/01/28(日) 10:40:47
>>66
マルチは帰れ
70名無しさん@そうだ選挙にいこう:2007/01/28(日) 11:55:43
>>61
やってみたけど普通に動いた
71HIRO:2007/01/28(日) 12:48:10
【1 OSの種類         .】 WindowsXP【2 Excelのバージョン   】 Excel2000【3 VBAが使えるか    .】いいえ 【4 VBAでの回答の可否】 否 
タイピングのデータ整理をするためにエクセルで2つの文を比較して間違いを検索し、 その文字と単語を抽出したいです。 それぞれの数を調べたいとおもっています。 テキスト文は英文です。何かいい方法はありませんでしょうか?
the deed freed the rugged deer
rhe deed freed rhe rugged deer
72HIRO:2007/01/28(日) 12:50:03
先ほどのつけたしなのですが、
文字を1つのセルにして同じような処理はできないでしょうか?
表示例.
___________________________
i n m y f a m i l l y
i n m u f a m u l
y:1 u:
my:1 familly:1
____________________________

myのyを間違えているのでこれをぬきだし、文字数を調べたいです。
同様にfamillyのiを間違えているのでこれをぬきだし、文字数を調べたいです。
そして間違えたmyとfamillyをぬきだし、
この間違えた数を調べたいのですが、セルの関数などで、この様な方法はできないでしょうか?
セルの関数にできれば、根気よくコピー、ペーストでさがしていきたいのですが…
よい考えをお持ちの方よろしくお願いいたします。
73名無しさん@そうだ選挙にいこう:2007/01/28(日) 13:19:39
>>71-72
普通に切り出して単純に比較すればいいじゃん。
A1:A2に
the deed freed the rugged deer
rhe deed freed rhe rugged deer
を入れるとしたら、
B1=MID(A$1,ROW(),1)
C1=MID(A$2,ROW(),1)
D1=IF(B1=C1,"",B1&" / "&C1)
とかをフィルコピーすれば、文字単位での違いは簡単に見つかる。
文字単位の違いが解れば、ROW()の値を元に違いのある単語の切り出しが出来る。
ROW()が16を返したら、「the deed freed the rugged deer」の先頭から16文字目が
違うってことだから、16文字目を含むスペースで囲われた範囲を切り出せば良いだけ。
間違い文字数はBかC列が空白な行単位で、D列が空白じゃない個数をカウントすれば良い。

あとはヘルプを読んで自分で頑張ろう。でもこれ、Excelの仕事じゃないぞ。
スレ違いだから紹介は控えるが、専用ソフトもあるし、自分でやるにしても「コ根気よくピー、ペーストで」ってことは
元々Excel上にあるデータじゃないんだから、PerlやWSHなんかでやった方がいいだろうし。
74名無しさん@そうだ選挙にいこう:2007/01/28(日) 13:22:49
>>60
適当に直して
Sub sample()
Dim i As Integer
Dim Rng As Range

If Cells(2, 3) = "M/" Then
Range(Cells(2, 1), Cells(2, 2)).Select
Set Rng = Selection
End If
For i = 3 To 7
If Cells(i, 3) = "M/" Then
Range(Cells(i, 1), Cells(i, 2)).Select
Set Rng = Union(Rng, Selection)
End If
Next i
Set Rng = Union(Rng, Range("A1:B1"))
Rng.Select

Charts.Add
With ActiveChart
.ChartType = xlColumnClustered
.SetSourceData Source:=Rng
.Location where:=xlLocationAsObject, Name:="Sheet1"
End With

Set Rng = Nothing
End Sub
75名無しさん@そうだ選挙にいこう:2007/01/28(日) 13:25:10
>>71-72
できません。
76名無しさん@そうだ選挙にいこう:2007/01/28(日) 13:57:06
Excelでカレンダーを作ってるんですが、
祝日を自動的に入れる方法がよくわかりません。
教えていただけませんか?
77名無しさん@そうだ選挙にいこう:2007/01/28(日) 14:07:28
>>76
マクロ組むか休祭日の条件を判断する列や行を作れ
78HIRO:2007/01/28(日) 14:07:34
返信ありがとうございます。
頑張ってやってみます。
他のアプリケーションを勉強がらやる時間がないので
地道に努力します。
また、こんなのあるじゃん!!みたいなのを思いついたら
教えてください♪(^0^)
79名無しさん@そうだ選挙にいこう:2007/01/28(日) 14:58:12
>>74
間違いだらけで、一から書いた方が良さげなふいんき
80名無しさん@そうだ選挙にいこう:2007/01/28(日) 17:28:39
>>79
じゃあ書いて
81名無しさん@そうだ選挙にいこう:2007/01/28(日) 18:28:44
8260:2007/01/28(日) 18:36:57
>>74

ありがとうございました。色々調べてみます。
83名無しさん@そうだ選挙にいこう:2007/01/28(日) 21:24:52
>>70
速攻自分でできました。すいません。案外簡単ですね。
こんなもんやる気でやったらすぐ上級まで行けそう。
84名無しさん@そうだ選挙にいこう:2007/01/28(日) 21:31:51
とりあえず、やってみようとせずに質問すんの、やめぃ。
85名無しさん@そうだ選挙にいこう:2007/01/28(日) 21:44:41
【1 OSの種類         .】 Windows2000
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 可

http://vista.crap.jp/img/vi6998742850.gif

セルの幅より長い文字列だと右側にはみ出して表示されるのですが、
画像下の様にはみ出さないように表示させるにはどうしたら良いでしょうか?
画像は右側のセルに空白を入れてはみ出ていない様に見せかけています。
初心者質問ですみませんが宜しくお願いします。
86名無しさん@そうだ選挙にいこう:2007/01/28(日) 21:50:25
ExcelとAccessのピボットテーブルの違いがわかる方いますか??
それぞれの長所と短所とか教えていただけたら助かります。
よろしくお願いします。
87名無しさん@そうだ選挙にいこう:2007/01/28(日) 21:55:55
>>85
書式の設定→配置で折り返して全体を表示する をチェックするとか
88名無しさん@そうだ選挙にいこう:2007/01/28(日) 22:02:06
>>86
使って分からないなら、ExcelとAccessの差だけと思ってればおk。
総計とかデフォで出ないのがAccess。
89名無しさん@そうだ選挙にいこう:2007/01/28(日) 22:35:58
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】勉強中
【4 VBAでの回答の可否】 可 と言うか、お願い
ix = 0
i = 0
Do
i = i + 1
If Cells(i, 10) = "a" Then
ix = ix + 1
Worksheets("sheet1").Range(Cells(i + 1, 1), Cells(i + 1, 9)).Copy _
Destination:=Worksheets("結果").Range(Cells(ix, 2), Cells(ix, 10))
Worksheets("結果").Cells(ix, 1) = "a"
End If
If Cells(i, 11) = "b" Then
ix = ix + 1
Worksheets("sheet1").Range(Cells(i + 1, 1), Cells(i + 1, 9)).Copy _
Destination:=Worksheets("結果").Range(Cells(ix, 2), Cells(ix, 10))
Worksheets("結果").Cells(ix, 1) = "b"
End If
Loop Until Cells(i, 1) = ""

と書いたマクロで
Worksheets("sheet1").Range(Cells(i + 1, 1), Cells(i + 1, 9)).Copy _
Destination:=Worksheets("結果").Range(Cells(ix, 2), Cells(ix, 10))

の部分でエラーになっています。
実行時エラー '1004'
アプリケーション定義またはオブジェクト定義のエラーです。
ってメッセージが出てるんですけど、どう直せば良い?
90名無しさん@そうだ選挙にいこう:2007/01/28(日) 22:59:29
>>89
CellsにもWorksheetsをつけてやれ
91名無しさん@そうだ選挙にいこう:2007/01/28(日) 23:30:56
>>90
ありがとぉ〜

Worksheets("sheet1").Range(Worksheets("sheet1").Cells(i + 1, 1), Worksheets("sheet1").Cells(i + 1, 8)).Copy _
Destination:=Worksheets("結果").Range(Worksheets("結果").Cells(ix, 2), Worksheets("結果").Cells(ix, 9))

としつこく Worksheets("〜"). を付けて直りました。
92名無しさん@そうだ選挙にいこう:2007/01/28(日) 23:35:57
dim s as variant, k as variant
set s = sheets("sheet1")
set k = sheets("結果")

s.Range(s.Cells(i + 1, 1), s.Cells(i + 1, 8)).Copy _
Destination:=k.Range(k.Cells(ix, 2), k.Cells(ix, 9))

最後に
set s = nothing
set k = nothing

こっちのほうがコードが見やすいと思う。
9389:2007/01/28(日) 23:46:33
>>92

おぉぉ〜、、確かに!ありがとです!
94名無しさん@そうだ選挙にいこう:2007/01/29(月) 00:19:25
> dim s as variant
dim s as Worksheet
型宣言はきちんと

> set s = sheets("sheet1")
set s = Worksheets("sheet1")
sheetsはグラフシートを含むコレクション
ワークシート限定の場合はWorksheetsコレクションを使う

> 最後に
> set s = nothing
> set k = nothing
不要。
プロシージャレベル変数は、プロシージャを抜けるときに自動で破棄される。
Terminateイベントに処理があるものは明示的に破棄した方がいいし
グローバル変数では必要に応じて任意に破棄しなきゃならないけどね。


あと、これは間違いではないけど、一文字変数はループカウンタ以外ではやめとけ
95名無しさん@そうだ選挙にいこう:2007/01/29(月) 10:46:55
教えてください。
2つのブックを持つひとつのワークシートが有り、ブックAに項目[A番号][共通]、
ブックBには[B番号]が有ります。

[A番号]にある番号が[B番号]にもある場合[共通]に[B番号]、あるいは何かのマークを
表示したいのですが[共通]の項目のセルにどのような関数を書けば良いのでしょうか?
96名無しさん@そうだ選挙にいこう:2007/01/29(月) 10:51:05
>>95
ワークシート関数「VLOOKUP」をGoogleなどで調べてごらんなさい。
あと、ブックとシートの考え方が間違ってる。逆。
97名無しさん@そうだ選挙にいこう:2007/01/29(月) 10:51:06
教えてください。
2つのブックを持つひとつのワークシートが有り、ブックAに項目[A番号][共通]、
ブックBには[B番号]が有ります。

[A番号]にある番号が[B番号]にもある場合[共通]に[B番号]、あるいは何かのマークを
表示したいのですが[共通]の項目のセルにどのような関数を書けば良いのでしょうか?
98名無しさん@そうだ選挙にいこう:2007/01/29(月) 10:53:19
>>96
ありがとうございます。調べてみます。

PS. 2重投稿してしまいました。すみません
99名無しさん@そうだ選挙にいこう:2007/01/29(月) 11:35:16
>>97
=IF(A番号=B番号,共通,"")
100名無しさん@そうだ選挙にいこう:2007/01/29(月) 11:58:14
101名無しさん@そうだ選挙にいこう:2007/01/29(月) 14:51:48
Excel2003を使っていますがどうしても分からなかったので質問させていただきます。

10
25
43
37

と縦に並んでいる数値の上位3位までを自動で足したい場合どのような関数を使えばよいのでしょうか。
数値は横列計算で弾き出される数値ですので固定ではありません。

102名無しさん@そうだ選挙にいこう:2007/01/29(月) 15:03:41
>>101
=RANKと=IFと=SUM
103名無しさん@そうだ選挙にいこう:2007/01/29(月) 15:03:49
>>101
例えばA1:A20が集計範囲だとしたら、配列数式で
{=SUM(A1:A100*(RANK(A1:A100,$A$1:$A$100,0)<4))}
とかかな?
RANK関数で順位を計算して、その上位3つを足し算してる。
同じ値のものがあると、意図したようには動かないかも。
そんな場合はいきなり関数でなくて、並べ替えしてから、
=SUM(A1,OFFSET(A1,1,0),OFFSET(A1,2,0))
とかでいいんじゃないかな?
104名無しさん@そうだ選挙にいこう:2007/01/29(月) 15:04:30
あ、A1:A20でなくて、A1:A100の場合の式だった。ごめんごめん。
105101:2007/01/29(月) 15:27:07
>>102-104 の方
ありがとうございました、少しやってみます!

>>103にあるように並べかえれば楽なんですが横計算によっては順位がガラリと変わってしまうのでどうしてもそれが出来なかったのです。
106名無しさん@そうだ選挙にいこう:2007/01/29(月) 15:28:55
別シートにでも、ピボット組んでおけば、更新するだけで、
毎回上位順に並ぶけど。…ってもう解決してんだね。。
107名無しさん@そうだ選挙にいこう:2007/01/29(月) 15:31:00
LARGEがいいとおもう
108名無しさん@そうだ選挙にいこう:2007/01/29(月) 17:03:30
1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003

「レーザープリンター」を縦書きで書きたいんですが、
セルの書式設定→文字列でやると、





プ




  となってしまいます。哀れな僕に一のところを縦棒に変換する方法教えてくださいませ。
109名無しさん@そうだ選挙にいこう:2007/01/29(月) 17:19:12
>>108
普通にやれば縦棒になるが
110名無しさん@そうだ選挙にいこう:2007/01/29(月) 17:27:53
>>108
セルの書式設定の方向って囲みの中、

 文
 字
 列

って書いてる所をクリックしておk。
111名無しさん@そうだ選挙にいこう:2007/01/29(月) 17:55:38
Excelアウトプットにコメントを加えなさいって言われたけど
Excelアウトプットってなに?
112名無しさん@そうだ選挙にいこう:2007/01/29(月) 18:18:26
言った奴に聞いてくれ
113名無しさん@そうだ選挙にいこう:2007/01/29(月) 18:26:14
ヘッダかフッタだろうと予想
114名無しさん@そうだ選挙にいこう:2007/01/29(月) 18:37:06
>>101

107の言う通り。
=LARGE(範囲,1)+LARGE(範囲,2)+LARGE(範囲,3)
でできると思う。
115108:2007/01/29(月) 18:41:17
109さん.110さん。アドバイスありがとうございます。
職場のパソコンだとできなかったんですが、
家のパソコンでやったら普通にできました。
116名無しさん@そうだ選挙にいこう:2007/01/29(月) 20:27:54
質問です
同じセル内に文字と数値を入れて、数値だけを合計計算できますか?

たとえば、

セット
5000


6000


3000


セット
2000

のような感じで、一つのセルの中に文字が入る場合でオートサムを使えますか?
117名無しさん@そうだ選挙にいこう:2007/01/29(月) 20:33:11
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA、JS、DS、インポート、共通、別ファイル、tips

同じ関数(モジュール?)を複数の別ファイルで使いたいのですが、その方法が分かりません。
人にちらっと聞いたところ、DSだかの拡張子のファイルを作成しインポートするというのを聞きました。
しかし検索してもDSだと全くヒットしないので、もしかしたらJSかと思って検索をしていますが、やっぱり分かりません。
共通のファイルをインポートするだけでいけるのか、DLLしか方法はないのか、良い方法を教えてください。
118名無しさん@そうだ選挙にいこう:2007/01/29(月) 20:44:38
>>116
オートサム限定ならやったんだろ?無理だよ。
つか、計算する数字を何故に文字列と同セルにぶちこむ?
119名無しさん@そうだ選挙にいこう:2007/01/29(月) 20:51:41
120名無しさん@そうだ選挙にいこう:2007/01/29(月) 20:58:33
>>118
そうですか・・・無理ですか
一つの商品に、一つの値段じゃないもので、セット価格と言う意味でわかりやすく作ったのですが、
計算ができず。
121117:2007/01/29(月) 20:59:39
>>119
なるほどアドインを使うんですね。分かりました。
クラスモジュール?と探していたところでした。
ありがとうございます。
122名無しさん@そうだ選挙にいこう:2007/01/29(月) 23:33:17
もう一台PCがないとVBA走らせてる間なーもでけんヽ(冫、)ノ
123名無しさん@そうだ選挙にいこう:2007/01/29(月) 23:39:52
>>122
VistaPC買え
124名無しさん@そうだ選挙にいこう:2007/01/29(月) 23:42:22
あと20分くらい?
125名無しさん@そうだ選挙にいこう:2007/01/30(火) 21:23:11
今日は静かだな
126名無しさん@そうだ選挙にいこう:2007/01/30(火) 21:52:16
Excel2007で遊んでいるのか?
127名無しさん@そうだ選挙にいこう:2007/01/30(火) 21:59:24
質問答えるしか趣味無い奴必死だなw
128名無しさん@そうだ選挙にいこう:2007/01/30(火) 22:40:33
質問お願いします

ある特定のセルの値が「達成」なら「達成」
違えばあとB1のセルとC1のセルの差を出し、
「あと○○%です」と返す式を作りたいのですが、

=if(A1="達成","達成","あと"B1-C1"です")

と言う式だと作成することができません。
このようなことは可能でしょうか?
129名無しさん@そうだ選挙にいこう:2007/01/30(火) 22:56:26
>>128

=if(A1="達成","達成","あと"&B1-C1&"です")
130名無しさん@そうだ選挙にいこう:2007/01/30(火) 22:57:30
>>129
マジでサンクス
131名無しさん@そうだ選挙にいこう:2007/01/30(火) 23:56:04
>>89
亀だが、

Destinationはシートが違うと使えん。少なくとも俺は。
範囲コピー→コピー先アクティブ→ペースペ
で我慢。
132名無しさん@そうだ選挙にいこう:2007/01/31(水) 00:20:29
初心者質問ですみません
二つ以上の条件に一致した件数を抽出するにはどうすればよいのでしょうか?
countifでは1つの条件にしか適用できず困っております
133名無しさん@そうだ選挙にいこう:2007/01/31(水) 00:22:43
>>132
複合して使う
134132:2007/01/31(水) 00:25:29
>>133
早速のレスありがとうございます
複合とはどういった処理でしょうか?
135名無しさん@そうだ選挙にいこう:2007/01/31(水) 00:29:26
>>134
組合すの
=COUNTIF(…)-COUNTIF(…)とか
どういう複数条件か知らないのでこれは一例
具具って調べて
136132:2007/01/31(水) 00:44:56
度々すみません
例:列Bが「Aさん」でかつ列Cが「有休」である件数を抽出

    A B C(列)
1  1日 A 有休
2  2日 B 有休
3  3日 A 有休
4  4日 C 有休
(行)

※実際には有休以外に項目はあります
どのような数式を当てはめればよいのでしょうか?
137名無しさん@そうだ選挙にいこう:2007/01/31(水) 00:57:04
>>136
=SUMPRODUCT((B1:B4="A")*(C1:C4="有給"))
138名無しさん@そうだ選挙にいこう:2007/01/31(水) 01:00:33
>>136
D1に=AND(B1="A",C1="有休")
下までコピー
COUNTIFでTRUEの数を数える
139132:2007/01/31(水) 01:02:50
>>137
>>138
ご回答ありがとうございました。
早速試してみます
140名無しさん@そうだ選挙にいこう:2007/01/31(水) 02:16:44
すいません。
マクロで複数のシートで同一形式のグラフを作りたいんですが、
シートごとに要素数が異なるためうまくつくれません。
アクティブなシートごとに行数を取得する方法はありませんか?
例えば
Sheet1:A1:A898
Sheet2:A1:A894
の場合、Sheet1でできてもSheet2では引数が足りずエラーになります。

よろしくお願いします。
141名無しさん@そうだ選挙にいこう:2007/01/31(水) 04:45:42
>>140
CurrentRegionプロパティ使ってみたらどう?
Range("A1").CurrentRegion.Select でA1からの表を選択
142名無しさん@そうだ選挙にいこう:2007/01/31(水) 05:18:29
>>141

ActiveChart.SetSourceData Source:=Sheets _
("hoge").Range("A1:A893,D1:D893"), PlotBy:=xlColumns

の場合Range("A1").CurrentRegion.Selectをどう使えばよいでしょうか?
143名無しさん@そうだ選挙にいこう:2007/01/31(水) 17:23:50
▼がセルの右側に出て
複数の選択で選ぶことのできるヤツってどうすればできますか?
144名無しさん@そうだ選挙にいこう:2007/01/31(水) 17:31:06
入力規則のリストか
コントロールツール、又はフォームツールのコンボボックス
145名無しさん@そうだ選挙にいこう:2007/01/31(水) 17:43:54
>>143
多分、
データ→入力規則
の事かと。
146名無しさん@そうだ選挙にいこう:2007/01/31(水) 18:57:06
>>144-145

ありがとうございます。無事できました
エクセル2000です。
1.他のシートに選択肢の一覧を置いて選択できるようにはできないのですか?

=CONCATENATE(A1+B1)を他のシートを参照したいのですが。
147名無しさん@そうだ選挙にいこう:2007/01/31(水) 19:34:57
>>146
名前
148名無しさん@そうだ選挙にいこう:2007/01/31(水) 19:46:24
すみません
これで
http://rosso.1717.info/upload/data/20070131.jpg

今はC列を手動で入力してるんですけど、これをB列
を入力しただけで、自動的にC列が表示されるように
するには、どういう計算式をC列セルに入れておけば
いいのでしょうか?

=●+●とかオートフィルを使って、B列の一日ごとに
入力するたびに、それまでのB列の合計をC列に表示
させたいんですけど…
14989:2007/01/31(水) 19:49:41
>>131
ExcelヘルプのRange オブジェクトの Copy メソッド の使用例にはこうあるんですよ。
それでこれを使おうと思ったんです。

次の使用例は、シート 1 のセル範囲 A1:D4 をシート 2 のセル範囲 E5:H8 にコピーします。

Worksheets("Sheet1").Range("A1:D4").Copy _
destination:=Worksheets("Sheet2").Range("E5")
150名無しさん@そうだ選挙にいこう:2007/01/31(水) 20:10:36
>>148
IF関数
151名無しさん@そうだ選挙にいこう:2007/01/31(水) 20:14:48
>>148
C3は = C2 + B3
C4以降はC3をフィル
152名無しさん@そうだ選挙にいこう:2007/01/31(水) 20:20:29
>>151
ありがとうございます
できました
153名無しさん@そうだ選挙にいこう:2007/01/31(水) 22:46:39
復活したかな?
154名無しさん@そうだ選挙にいこう:2007/01/31(水) 23:16:28
読み取り専用にチェックがついていないエクセルファイルを
読み取り専用で開く方法を教えて下さい
155名無しさん@そうだ選挙にいこう:2007/01/31(水) 23:17:13
>>154
156名無しさん@そうだ選挙にいこう:2007/01/31(水) 23:22:55
>>155
読み取り専用で開く場合って、右クリ⇒プロパティの読み取り専用にチェック
するじゃないですか

そうじゃなくて、読み取り専用でないファイルを読み取り専用で開く方法ないですかね?
ってこと
157名無しさん@そうだ選挙にいこう:2007/01/31(水) 23:27:16
>>156
「シートの保護」or「ブックの保護」でGoogle
158名無しさん@そうだ選挙にいこう:2007/01/31(水) 23:32:10
>>156
ファイルを開くダイアログでファイルを右クリック
159名無しさん@そうだ選挙にいこう:2007/02/01(木) 00:03:45
エクセルで
1.テキストファイルを大量に検索して
2.そこにある特定の文字列を正規表現で抜き出す
3.セルに書き出す

ってできますか・?
160名無しさん@そうだ選挙にいこう:2007/02/01(木) 00:05:20
>>159
質問があいまいなので出来るとも出来ないとも言える
161名無しさん@そうだ選挙にいこう:2007/02/01(木) 00:23:20
1.とあるフォルダに入ってる大量のファイルから
2.特定のパターン文字列を取り出して  
<font size="3"><b>大阪名物</b></font>
p;[0120]
(500円(税込))
3.エクセル内のセルに貼り付ける
行A          B     C
大阪名物 |  0120  | 500
 
162名無しさん@そうだ選挙にいこう:2007/02/01(木) 00:27:44
>>159
出来る。
163名無しさん@そうだ選挙にいこう:2007/02/01(木) 00:29:30
すみません、このサイトの
中央職業能力開発協会(JAVADA) ttp://www.javada.or.jp/top.html
ここ↓のページからダウンロード出来る 表計算部門 3級の問題を解いているのですが
ttp://www.javada.or.jp/jigyou/gino/sinsa_comp/siken.html
どうしてもX軸がプロットエリアの上に来てしまい、解答のように作れません
どうしたら出来るのか、ご存じの方いらっしゃいましたら教えてくださいorz

ここまでは出来ているのですが・・・根本的に間違っているのでしょうか?orz
http://kjm.kir.jp/pc/?p=29050.jpg
164名無しさん@そうだ選挙にいこう:2007/02/01(木) 00:31:03
>>161
>>159の人?
「特定パターン」の必要な情報がさっぱり無いからはっきりとは言えないが、書かれている内容から推測すると正規表現では難しそうだね
165名無しさん@そうだ選挙にいこう:2007/02/01(木) 00:37:06
>>163
軸の書式設定→パターン→目盛ラベル
166名無しさん@そうだ選挙にいこう:2007/02/01(木) 00:42:43
>>165
できました!!!
ありがとうございます!!!
167名無しさん@そうだ選挙にいこう:2007/02/01(木) 01:50:11
シート名が変更できなくなってしまいました。

変更すると頭に .8.xls] と自動で入ってしまい、
それ以外に変更しようとすると、
シートまたはグラフの名前が正しくありません のエラーが出てしまいます。

ご助力お願いします。
168名無しさん@そうだ選挙にいこう:2007/02/01(木) 04:48:00
>>161
grepなどで正規表現置換したあとExcelにインポートするか
VBAでテキストファイル読み込んで解析・整形・代入をするかだね。
正規表現についてはスレ違いだし、VBA書けないという情報は出されてないので
コードは自分で書いてね。

164は難しそうとか言ってるけど、数値と「大阪名物」の部分が
可変なだけなら正規表現でも簡単に出来るから。
169名無しさん@そうだ選挙にいこう:2007/02/01(木) 05:25:37
>>142
離れている行ならこんな感じで

Dim rngA As Range
Range("A1").Select
Set rngA = Union(Range("A1").Range(Selection, Selection.End(xlDown)), _
Range("D1").Range(Selection, Selection.End(xlDown)))
ActiveChart.SetSourceData Source:=rngA, PlotBy:=xlColumns
170名無しさん@そうだ選挙にいこう:2007/02/01(木) 12:32:37
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 合計 組み合わせ 特定

ある列の数値の内いくつかを合計した数値だけがわかっています。
どの数値を合計したものなのかを特定する方法があれば教えて頂きたく思います。
ちなみにいくつの数値を合計したものなのかはわかりません。

具体的にはこんな感じです。
「この中から足すと87になる数値の組み合わせを特定しなさい」

15
25
3
56
34
28
35
60

よろしくお願いします。
171名無しさん@そうだ選挙にいこう:2007/02/01(木) 13:25:39
>>170
B1:I1にその15〜60
B2:I2に1 2 4 8 16 32 64 128
A3:A258に1〜255
B3に =MOD(INT($A3/B$2),2)*B$1 I258までフィル
J3に =SUM(B3:I3) J258までフィル
オートフィルタで抽出

データ数が増えると簡単に破綻するけどね
172名無しさん@そうだ選挙にいこう:2007/02/01(木) 13:40:28
>>171
ワークシート関数だけでってスゲェ…。
173名無しさん@そうだ選挙にいこう:2007/02/01(木) 14:02:30
つーか確定された手法でしょ
公式に当てはめてやるのと同じ
174名無しさん@そうだ選挙にいこう:2007/02/01(木) 14:38:19
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 Excel 文字の大きさ 揃える

半角、全角それぞれ一文字の大きさを揃える方法は
無いでしょうか?

例えば
’あああああ’と、
’くくくくく’と書いた場合の長さを揃えたいのです。
175名無しさん@そうだ選挙にいこう:2007/02/01(木) 14:47:04
プロポーショナルフォントを使う
ゴシック → Pゴシック
等に変更する
176名無しさん@そうだ選挙にいこう:2007/02/01(木) 14:47:51
>>174
プロポーショナルフォント(文字毎に文字幅が異なるフォント)を使わなければ良いだけでは?
具体的には「MS Pゴシック」の変わりに「MS ゴシック」とか

>>175
逆だろw
177174:2007/02/01(木) 14:58:27
「MS ゴシック」で出来ました。
ありがとうございました。
178名無しさん@そうだ選挙にいこう:2007/02/01(木) 16:17:33

セルA-1 draemon
セルA-2 nobi nobita

とあってもし空白があったら
空白を+に置き換えしてなければそのままでBに返すってできますか?


セルA-1 draemon
セルA-2 nobi+nobita
179名無しさん@そうだ選挙にいこう:2007/02/01(木) 16:20:45
>>178
>>4
> ★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
>  ▼数式・関数
>   ・ 値の書き換え、値の保持 (VBA)

別な場所に結果を返して元の場所に値の貼付をするか、VBA使うしかない
180名無しさん@そうだ選挙にいこう:2007/02/01(木) 17:43:45
>>178
文字列があるかどうかの判定は「=FIND()」関数。
あとはオートフィルタで絞ってGo。
181名無しさん@そうだ選挙にいこう:2007/02/01(木) 18:53:19
置換つかえ
182名無しさん@そうだ選挙にいこう:2007/02/01(木) 19:35:34
ふむ、フィルタ(" "を含む)と置き換えでおkだな
183名無しさん@そうだ選挙にいこう :2007/02/01(木) 20:37:25
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

1  ○○   1  ○○
2        2
3        3
4        4
5        5
6        6
・        ・
・        ・
・        ・
・        ・
25 ○○   148 ○○
・        ・
49 ○○   289 ○○ 
・        ・
73 ○○   433 ○○

左図を右図のように、行挿入を繰り返したいのですが、
達人お教えください。


左図を右図のように行の挿入を行いたいのですが、
184名無しさん@そうだ選挙にいこう:2007/02/01(木) 20:43:29
疲れているんだろうか・・・>>183が何を聞きたいのか分からない
185名無しさん@そうだ選挙にいこう:2007/02/01(木) 20:51:19
俺漏れも…
186名無しさん@そうだ選挙にいこう:2007/02/01(木) 20:52:55
手動でやってくれ
187名無しさん@そうだ選挙にいこう :2007/02/01(木) 20:55:16
すみません。みなさんは疲れてません俺が馬…。
24行おきの行を
144行おきにかえたいのですよ。

上の右図148は間違いで145でした。
188名無しさん@そうだ選挙にいこう:2007/02/01(木) 20:57:03
どういう処理でそれが発生しているのか、非常に気になるw
189名無しさん@そうだ選挙にいこう:2007/02/01(木) 20:58:35
>>187
+24でまわしてるループを+144でまわせばいいじゃん。
190名無しさん@そうだ選挙にいこう:2007/02/01(木) 21:02:49
>>183
@B列をクリア
AC1あたりに、「=MOD(A1,145)」と書き、下までフィル
Bオートフィルタ展開→C列が「0」で絞る
CB列にマーキング
DC列をクリア

1行目は手動で。
191名無しさん@そうだ選挙にいこう:2007/02/01(木) 21:05:13
>>187
これでどうだ。

Sub test()
Dim cnt As Long
Dim arr As Long
Dim arr2 As Long
Dim temp() As String
cnt = 0
arr = 0
arr2 = 0

Do While cnt < 1000
temp(arr) = Cells(cnt, 1).Value
arr = arr + 1
cnt = cnt + 24
Loop
ActiveSheet.Clear
cnt = 0
For arr2 = 0 To arr
Cells(cnt, 1).Value = temp(arr2)
cnt = cnt + 144
Next
End Sub

ちなみに未テスト
192名無しさん@そうだ選挙にいこう :2007/02/01(木) 21:05:54
一年間、一時間ピッチのデーターを10分ピッチのデータに貼り付けるのです。

>>190さん
やってみます。できるかなー。
193名無しさん@そうだ選挙にいこう :2007/02/01(木) 21:07:18
>>192さん
それもやってみます。

みなさん、忙しいのに感謝。
194名無しさん@そうだ選挙にいこう :2007/02/01(木) 21:11:25
temp(arr) = Cells(cnt, 1).Value

デバックエラーがでまつ。
195名無しさん@そうだ選挙にいこう:2007/02/01(木) 21:14:03
>>194
ぱっと見、動的配列で宣言してるからじゃないのか?
めんどくさいからためすことはないが
196名無しさん@そうだ選挙にいこう:2007/02/01(木) 21:16:33
時間かけてVBAでやる必要はないしなw
197名無しさん@そうだ選挙にいこう :2007/02/01(木) 21:20:40
ああ、わたしのレベルでは無理そうです。
朝まで手動でいきます。

ありがとうございました。
198名無しさん@そうだ選挙にいこう:2007/02/01(木) 21:23:12
>>197
>>190が出来ないと?
199名無しさん@そうだ選挙にいこう:2007/02/01(木) 21:23:44
>>194
Do While cnt < 1000
Redim preserve temp(arr + 1)
temp(arr) = Cells(cnt, 1).Value

じゃあこうに変更でどうだ。
テストなしじゃ通らんな。
200名無しさん@そうだ選挙にいこう:2007/02/01(木) 21:23:45
>>197
Doの上の行に ReDim temp(arr) って付けてみ
俺は試さないが
201170:2007/02/01(木) 21:28:07
>>171
レスありがとうございます

勉強不足を痛感しました
頭の使い方が悪かったのも理解しました

これから励みます
temp(arr) = Cells(cnt, 1).Value
やはりでバックエラーでつね。

>>198
すみません。ほんとだめなやつなんす。
203名無しさん@そうだ選挙にいこう:2007/02/01(木) 21:58:43
>>197
Sub test()
Dim cnt As Long
Dim arr As Long
Dim arrTwo As Long
Dim temp() As Variant
cnt = 1
arr = 1
arrTwo = 1

Do While cnt < 65500
If Not IsEmpty(ActiveSheet.Cells(cnt, 1)) Then
ReDim Preserve temp(arr)
temp(arr) = ActiveSheet.Cells(cnt, 1).Value
arr = arr + 1
End If
cnt = cnt + 24
Loop
ActiveSheet.Cells.Clear
cnt = 1
For arrTwo = 1 To arr - 1
ActiveSheet.Cells(cnt, 1).Value = temp(arrTwo)
cnt = cnt + 144
Next
End Sub


完成。
テスト済み
204203:2007/02/01(木) 22:09:39
シートがどういう状態かしらんけど、
このマクロは動くからな、ちゃんとコピーして予備つくっといてくれよ。
24行ごとが144行になるってことは1万行くらい書いてあったらあふれるんだからな。

手遅れでもしったこっちゃないが。
205名無しさん@そうだ選挙にいこう :2007/02/01(木) 22:13:10
ありがとうございました。出来ました。スゴス。
これを機会に私も勉強してみます。

連続した行に144行空けるってーのは
簡単に出来るもんなんすか?
206名無しさん@そうだ選挙にいこう:2007/02/01(木) 22:16:16
http://vista.jeez.jp/img/vi7033547985.jpg

これはF列までが有効になっており、カーソルもF列より右には行かないですが、
このように特定の列や行までを有効にするにはどうしたらいいですか。
207名無しさん@そうだ選挙にいこう:2007/02/01(木) 22:22:53
>>205
1発で動かんかったからでかいことはいえんけども、
単純な入力作業を楽にするってだけなら簡単。
[VBA]でぐぐって頑張って。
簡単なのは[マクロの自動記録]で。
208名無しさん@そうだ選挙にいこう :2007/02/01(木) 22:25:20
>>207
自動記録。うし、やってみます。
あのマクロは大事にとっておきます。
どもでした。
209名無しさん@そうだ選挙にいこう:2007/02/01(木) 22:30:12
>>206
表示 〜 改行プレビュー
とか何とか、その辺じゃねーの

210名無しさん@そうだ選挙にいこう:2007/02/01(木) 22:38:18
>>206
E列より右の全列が非表示になってるだけ。
書式→列→表示しない
211206:2007/02/01(木) 22:39:05
>>209
表示系のメニューも含めてほぼ全メニューを見たのですが、
どうしてもわからないのです。。。
212206:2007/02/01(木) 22:45:27
>>210
どうもありがとうございます。

部分的な列の非表示はやったことがあったのですが、
「E列より右の列全て」非表示という発想がありませんでした。

ありがとうございました。
213名無しさん@そうだ選挙にいこう:2007/02/01(木) 23:17:40
windows xp
excel2003を使用しています

画像を挿入して、その画像の上に文字を入力したいのですがわかりません

貼り付けた画像→右クリック→順序→背面へ移動
としてみましたが、何もかわらず・・・・・

わかる方いらっしゃいましたらよろしくお願いいたします。
質問の意味わかりにくいでしょうか?
214名無しさん@そうだ選挙にいこう:2007/02/01(木) 23:19:54
>>191って行の挿入じゃなくね?
質問した>>183が満足なら問題ないんだが。
215名無しさん@そうだ選挙にいこう:2007/02/01(木) 23:24:55
>>213
セルの背景に画像を表示させる感じにしたいのか?
画像の上に矢印やら注釈文を付けたいのか?

前者は無理だった気がするが、後者ならテキストボックスを挿入しろ
>>214
大満足してますよ。

今は別のことで悩んでる。
もう、聞く勇気はありません。
217名無しさん@そうだ選挙にいこう:2007/02/01(木) 23:30:35
エクセルの質問ではないのだが、ここで質問している奴、答えている奴は普段はどんな仕事
してるんだ?

職場(事務の仕事なんだが)ではエクセルを使うことが多くて、ある程度のことなら(基本作業なら)できるが、
このスレの質問のレベル、答えている人のレベルはかなり高いと思う。

どうやってここまで知識を得たのか教えてくれないか?お勧めの参考書などがあれば
教えてくれ
218名無しさん@そうだ選挙にいこう:2007/02/01(木) 23:38:01
>>217
習うより慣れ
参考書よりMSDN
219名無しさん@そうだ選挙にいこう:2007/02/01(木) 23:39:16
>>216
http://pc10.2ch.net/test/read.cgi/tech/1168308855/
余裕あったら一切期待しないでこっちに書いてみて。
今VBA勉強中の身で質問求むなので。
運がよければ即答できるかもしれないじゃないか。

>>217
大村なんとかの三巻で一セットのやつオススメ
基本、応用、コントロールのやつ。
あとは、グーグルで、[OLEObject]と[DOM]をぐぐりまくる。
APIはおいらも勉強中。
>>219
こんなスレがあったのですね、
ちょっとのぞいてみます。ありがとう。
221名無しさん@そうだ選挙にいこう:2007/02/01(木) 23:54:17
>>215
ありがとうございます
前者のほうなんですが、後者でも十分いけそうです

前に使っていたスタースイートでは出来たのでエクセルでも出来るかと思ったのですが無理なんですね・・・

すっごく早いレスありがとうございました
222名無しさん@そうだ選挙にいこう:2007/02/01(木) 23:55:43
>>217
株やってるとVBAまで使いこなせるようになるよ。
毎日のデータ更新、明日の仕掛ける銘柄の計算があるから。
理論、数式をコードに書き換えるだけだから、はじめは時間が
かかってもそれなりに動くよ。

必要は発明の母。株をやってエクセルも金も一石二鳥(嘘半分
223名無しさん@そうだ選挙にいこう:2007/02/02(金) 00:43:50
>>218
基礎的な知識無しでMSDN読んでると眠くなりそうな気がw
224名無しさん@そうだ選挙にいこう:2007/02/02(金) 06:40:37
>>223
昼間でも眠たくなること請け合い w
225名無しさん@そうだ選挙にいこう:2007/02/02(金) 06:48:24
バカで無知な奴がMSDN読むと眠くなる
予備知識のある奴や、頭の回転が良い奴なら問題ない
本来こうではいけないんだけどな
こういうものは無知なバカが理解できるように作らないと
226名無しさん@そうだ選挙にいこう:2007/02/02(金) 08:55:51
この「日本語訳」丸出しの文章が難だよなぁw
227名無しさん@そうだ選挙にいこう:2007/02/02(金) 09:26:53
英語ページ読めばいいだけじゃん。
英語ページの方が情報量も多いし。
228名無しさん@そうだ選挙にいこう:2007/02/02(金) 09:52:14
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 移動 マクロ オブジェクト

グラフの上にテキストボックスとオートシェイプをいくつか配置してあり、
そんなシートが60枚ほどあります。
全てのシートのテキストボックスだけをグラフの端に揃えたいのですが
マクロでやろうとすると元の位置から○○座標分移動となってしまい上手くいかんとです

Selection.ShapeRange.IncrementLeft 31.5
これを指定した絶対座標に移動させるにはどうやったらいいんでしょうか?
229228:2007/02/02(金) 10:26:57
ごめん、事故解決しますた
Selection.ShapeRange.IncrementLeft -9999
Selection.ShapeRange.IncrementLeft 移動量

ヘルプ見ててもサッパリわからず、一度X座標を0に揃えてやる方法しか思いつかなかった
玄人目にはダメダメに見えるかもしれないけど・・
230名無しさん@そうだ選挙にいこう:2007/02/02(金) 10:40:36
windowsXPを持っているのですが、excelが入っていません。
どこか無料でダウンロードできるところがあるでしょうか?
231名無しさん@そうだ選挙にいこう:2007/02/02(金) 10:43:50
>>230
ちょっと違うが。
http://www.google.co.jp/search?num=50&hl=ja&inlang=ja&q=OpenOffice&lr=

ちなみにExcelは有償ソフトです。
232名無しさん@そうだ選挙にいこう:2007/02/02(金) 10:46:15
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |      >>230
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
233名無しさん@そうだ選挙にいこう:2007/02/02(金) 17:51:45
テストを受けなかった人は零点なんですが、零点の人を除いて平均を出した
いときはどうすればいいですか?(受けて零点、というケースはないとして)

234名無しさん@そうだ選挙にいこう:2007/02/02(金) 18:01:13
>>233
それに対応した関数があるのでヘルプで調べてごらん
235名無しさん@そうだ選挙にいこう:2007/02/02(金) 19:40:46
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】合計


たとえば、
2  4   5   4
2  6  11  15


というように、上の段が今日の数字。下の数字がそれまでの数字の合計。
自動的に、上の段の数字を入力するだけで、下の合計を出す関数ってありますか?
236名無しさん@そうだ選挙にいこう:2007/02/02(金) 19:54:04
>>235
自分自身は足せないと思う。
関数では。
237名無しさん@そうだ選挙にいこう:2007/02/02(金) 20:04:19
>>233
A1〜A10に点数がある場合。
=SUM(A1:A10)/COUNTIF(A1:A10,"<>0")


>>235
もう1行、数式を入れる行を用意すれば可。

2  4   5   4  →今日の数字
=SUM(A1,A3)      →この行を挿入。
2  6  11  15  →昨日までの数字
238名無しさん@そうだ選挙にいこう:2007/02/02(金) 20:15:36
関数なんか使わんだろ

  A   B   C   D
1 2   4   5   4
2 2   6  11  15

A2=A1
B2=B1+A2
C2からはB2をフィルコピー
239名無しさん@そうだ選挙にいこう:2007/02/02(金) 20:25:23
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

2002年から2006年までの膨大な情報を年毎にフォルダに分け、
それぞれの年間総合計シートを筆頭に、2枚目以降のシートは
月毎にIDナンバー順に並べ替えるという作業をしています。
同じ作業の繰り返しなので、マクロ記録をして簡略化しています。
が、基本となる年間総合計シートの名前がそれぞれ違うので、
実行するとエラーになります。そのためフォルダ毎に
マクロ記録を1から作り直しています。
何か無駄な作業をしているような気がします。
もっと一回作った記録を使いまわせる効率のいい方法があるような…。
あと何が悪いのか、作った記録がエラーになる場合も多いです。
今回初めて使う機能なので戸惑います。
マウスに少し触れてしまって行の幅がずれてしまっただけでもう実行
してくれないものなのですね。
何かあらかじめこういうところに気をつけてから記録を開始したら
エラーを防げるよなど知恵があれば授けてください。
いくらでも時間をかければ仕上げられますが、量は膨大でも
簡略化さえできればきっと短時間で終わる作業だろうと思っています。
240名無しさん@そうだ選挙にいこう:2007/02/02(金) 20:35:19
>>239
そのシートが常に一番左にあるなら、
Worksheets(1)
と指定してやればおk。
241名無しさん@そうだ選挙にいこう:2007/02/02(金) 20:50:21
>>236
>>237
>>238
ありがとうございました。
242名無しさん@そうだ選挙にいこう:2007/02/02(金) 21:42:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】 もはやプロ級で、神の領域にすら到達しつつあるようだ。
【4 VBAでの回答の可否】 可
【5 検索キーワード     】色々検索しすぎて忘れちゃったよ。もう歳なのかな。

既に作られているオートシェイプや図が、どのセルに表示されているか取得することは可能?
243名無しさん@そうだ選挙にいこう:2007/02/02(金) 21:48:16
つまんね
244242:2007/02/02(金) 21:50:32
褒めてくれてありがとう。
245名無しさん@そうだ選挙にいこう:2007/02/02(金) 21:52:48
どのセルかってのは知らん。
位置なら、
Sheets(1).Shapes.Item(1).Left
                .Top
で取れるんじゃ?
246242:2007/02/02(金) 22:07:17
それって、図が表示されてるドットとかの位置での取得じゃ?
セル単位での位置の取得方法は無いでございますか?

さぁ我慢しないで答えてくれたまえ
君のためならこの命尽きるまで待ってあげるから・・・
247名無しさん@そうだ選挙にいこう:2007/02/02(金) 22:10:33
248名無しさん@そうだ選挙にいこう:2007/02/02(金) 22:11:35
>>242
自分で調べろ!
249242:2007/02/02(金) 22:13:54
>>247
アアあった。どうもありがとうございまする。

>>248
私の質問は君が調べなさい。


それではエクセル制作に戻るので、ごきげんよう。
250名無しさん@そうだ選挙にいこう:2007/02/02(金) 22:22:02
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2002
【3 VBAが使えるか    .】 少しぐらいなら
【4 VBAでの回答の可否】 可!

Excelでテストをして、その結果を結果n(nは1,2,3〜)シートを
作成して貼り付けていきたいと思ってます。んで、そこで現在
結果nの最大値は何かって知りたいんですけど。
最初の時点では当然結果1シートも無いので、そこから判断していく
方法を教えたってください〜。
251名無しさん@そうだ選挙にいこう:2007/02/02(金) 22:26:51
>>250
メモリに依存するのでは?
252名無しさん@そうだ選挙にいこう:2007/02/02(金) 23:07:14
Sheets.Count
253名無しさん@そうだ選挙にいこう:2007/02/02(金) 23:29:01
>>250
結果nを随時シートにコピーしていくなら
ForEachステートメントでワークシートをカウントして調べるか
シート名を調べれば拾える
結果nをシートにコピーしていない状態だと>>251の言うとおり
メモリに依存するかもしれない
というか詳細書いて無いから詳しく答えられん
254名無しさん@そうだ選挙にいこう:2007/02/02(金) 23:45:44
Excel2002を使用しています。
出勤表を作成していますが

A B   C
出    退    出勤時間
8:30 17:00   7.5

7時間半勤務なので↑こんな風にCを7.5と表示させるにはどうすればようでしょうか?
255名無しさん@そうだ選挙にいこう:2007/02/02(金) 23:46:45
ものすごいズレてしまいました。お願いします……
256名無しさん@そうだ選挙にいこう:2007/02/02(金) 23:59:58
>>254
=MAX(7.5,(B2-A2)*24)
こうですか?
257名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:00:03
質問させてください
手書きで上がってきた紙ベースのデータを
日々、打ち込むという単純作業をしています
これを以下のようにして短絡化するのは無理でしょうか?

@手書きのデータを(A3)スキャンする
Aスキャンしたデータを文字だけのデータにして(ラスタデータみたいなかんじ)
 縮尺をPC内のエクセル表と同じ倍率にして貼り付ける
B手書きのデータの数字がPC内の表に貼り付けられる
C数字が貼り付けられたところをなぞるイメージでデータ打ちこみ

というかんじです
CADのトレース作業などでよく行われる手法ですがそれを
エクセルでも応用できるでしょうか?
またそのためのフリーソフトなどありましたら教えてください。
258256:2007/02/03(土) 00:10:21
MINだったか
259名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:11:00
260名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:12:39
>>257
Excel単体じゃ無理。
OCR系のソフト買って、テキストエディタで加工して貼り付けがベター。
直でExcel形式に取り込めるものだと、うまくいかない場合が多い。
261名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:13:38
>>256さん有難うございました。
どうやら24を掛け算するだけで僕は幸せになれそうです。
262名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:14:13
>>257
OCRソフトであるかもしれませんね
263名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:15:47
手書きだからOCRはどうかな?
まあ、なに使うかは自由だけど
264名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:21:02
手書きだったら読めないな
265名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:23:33
どうして24掛けるの?
266名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:24:57
人によっては手書き対応のOCRでも読めないよ
267257:2007/02/03(土) 00:50:37
皆様、反応ありがとうございます
OCRソフトというものがあるんですか 知らなかった・・
ちょっとじっくり勉強させてもらいます 
その後また報告させてください
268名無しさん@そうだ選挙にいこう:2007/02/03(土) 00:57:26
>>250
これがわからん。
@どの段階でシートが作られるのか
Aどんな形式でシートに結果が出力されるのか
B結果1シートがない状態(つまりなにも結果がない状態)で最大値を判断とは

シートのすべてのセルを走破して値を調べてたらえらいかかるし…。
269名無しさん@そうだ選挙にいこう:2007/02/03(土) 08:15:17
>>265
24時間を0〜1に等分しているから

>>266
俺だ....orz
270名無しさん@そうだ選挙にいこう:2007/02/03(土) 08:22:10
>>237
ありがとうございました!
一見セルの中には文字列、例えば「二十歳」とあるけど、
数値として「20」が記入されている様にするには、どうすればいいの。
272名無しさん@そうだ選挙にいこう:2007/02/03(土) 12:25:53
携帯のメールみたいに予想入力する方法ってあるんですか??
273名無しさん@そうだ選挙にいこう:2007/02/03(土) 12:26:26
274名無しさん@そうだ選挙にいこう:2007/02/03(土) 12:29:37
>>272
純粋な予測入力は無い。
同じ列に以前に入力されているものを予測して出す機能はある。
http://www.google.co.jp/search?num=50&hl=ja&inlang=ja&q=Excel+%E3%82%AA%E3%83%BC%E3%83%88%E3%82%B3%E3%83%B3%E3%83%97%E3%83%AA%E3%83%BC%E3%83%88
275名無しさん@そうだ選挙にいこう:2007/02/03(土) 12:34:51
>>271
273の「Excel 漢数字 関数」は間違い
関数ではなく表示形式で出来る

関数だと別セル表示になっちゃうからな

>>272
予測入力はVBA使わないと出来ない
同列入力値からの補完なら標準で有効になってるはず
276名無しさん@そうだ選挙にいこう:2007/02/03(土) 12:51:50
>>274

ありがとお
277名無しさん@そうだ選挙にいこう:2007/02/03(土) 13:20:11
メールアドレスを入力するとメーラーが起動してしまいます。
これを無効にしたいのですがどうしたら良いでしょうか?
278名無しさん@そうだ選挙にいこう:2007/02/03(土) 13:52:39
>>277
ツール > オプション
の中をよーく調べよう
279名無しさん@そうだ選挙にいこう:2007/02/03(土) 16:47:29
5分ごとに自動保存するにはどこで設定したらいいですか?
280名無しさん@そうだ選挙にいこう:2007/02/03(土) 17:20:03
>277 メールアドレスを入力しただけでは起動しません。
>278 バージョンで異なるのでは?
281名無しさん@そうだ選挙にいこう:2007/02/03(土) 17:50:36
>>279
オプションの中に「自動保存」タブがあれば、そこで。
古いバージョンだと無い。
282名無しさん@そうだ選挙にいこう:2007/02/03(土) 17:54:02
>>273,275
どうもありがと。おかげで出来ました。


そうだ、明日は県知事選挙だ。

283名無しさん@そうだ選挙にいこう:2007/02/03(土) 17:55:12
284名無しさん@そうだ選挙にいこう:2007/02/03(土) 17:55:24
2000なので、ないですか。。。ありがとうございました。
285名無しさん@そうだ選挙にいこう:2007/02/03(土) 19:13:32
>>284
Excel2000なら
ツール→アドイン
の中にないか?
そこにチェックを入れればツールメニューに出るはず。
286名無しさん@そうだ選挙にいこう:2007/02/03(土) 20:02:08
アドイン使うなら、Excel97からあるはず。
287名無しさん@そうだ選挙にいこう:2007/02/03(土) 20:16:02
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2000
【3 VBAが使えるか    .】いいえ
【4 VBAでの回答の可否】 いいえ

すいません。日報にexcelを使用したいのですが。

簡潔に、日々の売上累計を記入するにはどのような方法がありますか?

やはり、関数を使用して、本日売上を記入してその後累計を求めるしか無いのでしょうか?

理想は、本日売上のみを日々記入すれば、完了っと言うのが良いのですが。。。
288名無しさん@そうだ選挙にいこう:2007/02/03(土) 20:33:21
>>287
オマイが何を売っていて、どのような表になるかを書け。
289名無しさん@そうだ選挙にいこう:2007/02/03(土) 20:37:53
>>285>>286
ありがとうございます。
アドインにありました。ディスク要求されましたが、うまくいきました。
この自動保存って、Wordの自動保存と同じですよね?
みなさんは使ってらっしゃらないんですか?
290287:2007/02/03(土) 20:56:02
2/1                                           2/2
     本日         累計                    本日   累計
A  ¥100         ¥100        A¥200  ¥300
B   ¥100         ¥100                B¥300  ¥400
C  ¥200         ¥200                C¥100  ¥300
D  ¥500         ¥500                D¥300  ¥800

計 ¥900         ¥900                計¥900  ¥1800

って感じです。日々を数字と入力後、ページレイアウトで1ページ毎に区切って、1ページづつプリントする予定です。
1シートで1ヶ月分を作成したいと考えてます。

宜しくお願いします。

291名無しさん@そうだ選挙にいこう:2007/02/03(土) 21:27:25
>>290
SUBTOTALかな?
292名無しさん@そうだ選挙にいこう:2007/02/03(土) 21:28:42
>>287
その表を縦に繋いで書いてって、どっかにピボットテーブルで
日々の合計と累計取っておき、毎日ピボットを更新、みたいな。
SUMIFでも何でも良いが。

何せ、日別に表を横に進めるのは、データの使い方を間違ってる。

日付  商品  売上
02/01 A    \100
02/01 B    \100
02/01 C    \200
02/01 D    \500
02/02 A    \200
02/02 B    \300
02/02 C    \100
02/02 D    \300

こんな感じ。
印刷する時は、オートフィルタで日付を絞ってから。
293EX音声読み上げ:2007/02/03(土) 23:05:47
すみません。2003では設定すれば「ツール」→「音声」→「[読み上げ]ツールバー」でできた音声読み上げが
VistaでExcel2007ではできません。vbaではspeakメソッドで英語だけは読むのですが。
どなたか、お教えいただくか、何かの情報をいただけないでしょうか。
294名無しさん@そうだ選挙にいこう:2007/02/03(土) 23:42:02
>>293
その環境を持ってるの、君だけだと思うので、
Microsoftに訊いてみよう。
295名無しさん@そうだ選挙にいこう:2007/02/03(土) 23:45:37
>>293
スクリーンリーダー入れてるとか…
296名無しさん@そうだ選挙にいこう:2007/02/04(日) 00:33:54
293はマルチだから放置でいいよ
297名無しさん@そうだ選挙にいこう:2007/02/04(日) 01:10:04
>>230
すげー遅レスだけど、いまならOffice2007体験版が使えるよ。
2か月だけだけどExcelも入ってる。
298名無しさん@そうだ選挙にいこう:2007/02/04(日) 01:28:41
293です。
申し訳ありません。ルールをよく知らなかったもので。
もし、おわかりになりましたら、お教え願えないでしょうか。
299名無しさん@そうだ選挙にいこう:2007/02/04(日) 01:45:47
まだVista使ってる人少ないから気長に待ちましょう。
300名無しさん@そうだ選挙にいこう:2007/02/04(日) 01:46:27
願えません

万引きが犯罪とは知らなかったので、このまま金も払わず
商品を持ち帰ることを見逃してもらえないでしょうか

ってのと同じだ

こういうのに教えちゃうと「教えたがり厨」の烙印押されるし
301名無しさん@そうだ選挙にいこう:2007/02/04(日) 01:59:07
>>300
喩えないほうがいいよ・・・
302名無しさん@そうだ選挙にいこう:2007/02/04(日) 02:30:40
すいません。教えて下さい。
例えば、間借りで申し訳ないですが、>>148サンのシートで(A列)日付部分が部門別のの表示、(B列)が本日売上として、(C列)にその累計を表示します。
それを(>>148サンのシート)で当日売上として保存して、なお同じシート内で次の日の計算を行うには、どの様な方法がありますか?

部門別の売上(毎日更新)と光熱費(月イチで各種更新)とその他日誌的スペースを備えた日報を作成したいのです。

当日の数字の足し引きは解るのですが、本日累計を次の日に持って行き、
更に次の日の本日売上を累計する方法が解りません。
何か適切な関数があれば教えて下さい。

148サンをお借りした、たとえは余分だったかも知れません。。。。

303名無しさん@そうだ選挙にいこう:2007/02/04(日) 04:51:26
VBAでセルA1〜J1までに、ランダムで0〜9までの数字を入れる
にはどうしたらいいですか??
304名無しさん@そうだ選挙にいこう:2007/02/04(日) 04:56:37
>>302
よくわからんが部門を列方向に作れば良いのでは?

   A   B    C    D      E        F
1 日付 部門1 部門2 部門3   合計      累計
2  3/1  100   200   300  =SUM(B1:D1)  =E1
3  3/2  200   300   400  =SUM(B2:D2)  =F1+E2
          :
32 3/31 100   200   300  =SUM(B32:D32) =F31+E32


日付が代わっても毎回同じセルに入力をしたいとか思ってるのかも知れないけど
それじゃ記録が残らないし、間違って入力した場合の修正も面倒。
そもそも>>4に書いてあるように関数では不可能でVBA必須になるし。
そういうことをやりたい場合でも、上記のような日別の表を作った上で
ユーザーフォームなりシート上のどこかなりに入力インターフェイスを用意すべきだ。


>>303
Rnd()で乱数発生させてForでループ回して代入すればいいと思うよ。
最初にRandomizeをお忘れなく。
305303:2007/02/04(日) 06:02:02
>>304

ありがとう、いかんせん初心者なもんで、
自分なりにやってみたんですけど
全くできません、どこが悪いんですか??

少数のランダムが入っちゃうから0〜9の命令が効いて
ないと思うんですけど…。


Private Sub CommandButton1_Click()
Randomize
Dim A As Integer

For A = 0 To 9
Next
With Worksheets("sheet1")
.Range("A1").Value = Rnd(A)
.Range("A2").Value = Rnd(A)
.Range("A3").Value = Rnd(A)
.Range("A4").Value = Rnd(A)
.Range("A5").Value = Rnd(A)
.Range("A6").Value = Rnd(A)
End With
306名無しさん@そうだ選挙にいこう:2007/02/04(日) 07:15:44
>>305

普通に10倍して少数切り捨てればいいじゃないか。

Int(Rnd *10)

でいいだろ。
307名無しさん@そうだ選挙にいこう:2007/02/04(日) 07:34:22
あっ、なんか嫌な予感。
もしかして、重複なしか?
だったら既出の数字をさらう必要もあるね。

それから、細かいことだがループカウンターはi,j,kを
使用したほうがいいよ。コーディング上の慣例だから。
308名無しさん@そうだ選挙にいこう:2007/02/04(日) 07:45:37
重複なしの場合、既出をさらうより、
配列に順番に数字を入れて、その配列をランダムソートしたほうがいいよ

ついでに言うとループカウンターはIntegerではなくLong使おう
これは慣例ではなく実際にLongの方が処理が速いから
309303:2007/02/04(日) 09:27:50
>>307
>>308
ありがとうございます。そうなんです、重複なしで入れたいんです。
ループカウンタのi,j,kとはどういうことですか?
それとやっぱりFor Nextが全く意味が無いのですが、どうしたらいいの
でしょうか??

Private Sub CommandButton1_Click()
Randomize
Dim A As Long
For A = 1 To 3

With Worksheets("sheet1")
.Range("B3").Value = Int(Rnd * 10)
.Range("B4").Value = Int(Rnd * 10)
.Range("B5").Value = Int(Rnd * 10)
.Range("B6").Value = Int(Rnd * 10)
.Range("B7").Value = Int(Rnd * 10)
.Range("B8").Value = Int(Rnd * 10)

End With
Next
End Sub

1〜3までって言ってるのにやっぱり0〜9から選ばれちゃうんですよ〜。
310名無しさん@そうだ選挙にいこう:2007/02/04(日) 09:29:38
3重にループさせろって事じゃね?
311303:2007/02/04(日) 09:48:09
すいません、乱数生成は0〜1までの実数なんですね。
For Nextの意味を履き違えてました。
配列に数字を入れて、順番を入れ替えてなんてできるんですか??
ネットでVBA入門検索しても全然わかりません…。
312名無しさん@そうだ選挙にいこう:2007/02/04(日) 10:03:10
Private Sub CommandButton1_Click()
  Dim lngArray(9) As Long
  Dim lngBuf As Long, lngRnd As Long, i As Long

  ' 配列に0〜9の数値を代入
  For i = 0 To 9
    lngArray(i) = i
  Next i

  ' 配列の値をランダムに入れ替え
  Randomize
  For i = 0 To 9
    lngRnd = Int(Rnd() * 10)
    lngBuf = lngArray(lngRnd)
    lngArray(lngRnd) = lngArray(i)
    lngArray(i) = lngBuf
  Next i

  ' セルに代入
  Range("A1:J1").Value = lngArray
End Sub
313303:2007/02/04(日) 10:18:02
>>312
すごい、できました。
自分じゃ絶対書けないプログラムです…。
ありがとうございました!!
314名無しさん@そうだ選挙にいこう:2007/02/04(日) 10:23:29
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Ctrl+D

範囲指定した後,Ctrl+D で下方向へコピーできますが,罫線もコピーされてしまいます。
「罫線がコピーされない下方向へのコピー」 をVBAで実現する方法を教えて欲しいです。
315名無しさん@そうだ選挙にいこう:2007/02/04(日) 10:34:51
>>314
ツール→マクロ→新しいマクロの記録で、
カーソル右下角を下方向に右クリフィル→値のコピー
を記録してコード見てみ。

ただ、数字の連番にはならん。
316名無しさん@そうだ選挙にいこう:2007/02/04(日) 10:43:46
>>312
10枚カードがあるから10回切ればランダムソートという考え方はナンセンス。
その考え方では10回切ろうが100回切ろうが同じ。元に戻る可能性があるからね。

10枚カードがあったら1枚づつ別の山へと抜き出していくという考え方がオーソドックス。
一度選んだカードは元に戻らないように二度と動かさない。
ひとつの配列でやりたいなら、ランダムに入れ替える配列の位置をきちんと制御する。

cardList = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
For i = UBound(cardList) - 1 To 0 Step -1
 tmpCard = cardList(i + 1)
 pulledOutCardPosition = Int(Rnd() * i)
 cardList(i + 1) = cardList(pulledOutCardPosition)
 cardList(pulledOutCardPosition) = tmpCard
Next
[A1:J1].Value = cardList
317名無しさん@そうだ選挙にいこう:2007/02/04(日) 10:48:50
>>316
何を勘違いしてるの?
318名無しさん@そうだ選挙にいこう:2007/02/04(日) 11:38:15
立方メートルの、「m」と「小さい3」を別々に打ちたいんですけど
小さい「3」のみってどうしたら出るのですか?
できるようなら教えてください、お願いします
319名無しさん@そうだ選挙にいこう:2007/02/04(日) 11:39:24
>>316
こいつバカだな
320名無しさん@そうだ選挙にいこう:2007/02/04(日) 11:40:44
>>314
前にも同じこと聞いてるだろ
321名無しさん@そうだ選挙にいこう:2007/02/04(日) 11:48:11
>>316
カードを10回切るのとは全く違う。
順次、ランダムな位置との入れ替え。それによって結果がランダムになる。

もちろん元に戻る(「インデックス=値」になる)可能性もあるが、
君の方法だって「インデックス=値」になる場合もある。
要素数分の一の確立でそうなんることを含めてランダムと言うんだよ。
322名無しさん@そうだ選挙にいこう:2007/02/04(日) 11:53:44
>>318
3だけ後からフォント指定で上付きにするしかない
323名無しさん@そうだ選挙にいこう:2007/02/04(日) 12:43:34
>>315
「A1の内容を,A2〜A9の範囲へ下方向コピーする」
 1.マクロ記録開始
 2.A1を選択
 3.A1の右下を右クリックしてドラッグし,「書式なしコピー(フィル)」を実行
 4.記録終了
とすると,

Sub Macro1()
Range("A1").Select
Selection.AutoFill Destination:=Range("A1:A9"), Type:=xlFillValues
Range("A1:A9").Select
End Sub

と記録されました。この決めうちで記録された範囲の部分を,
「現在選択している範囲」に置き換えられたらよいのですが…

>>320
初めてなのですが…もし過去に同様の解決策が出ていましたら教えてください。
324名無しさん@そうだ選挙にいこう:2007/02/04(日) 12:48:26
こんな教科書に載るほどのオーソドックスな手法を知らない奴もいるんだなw
お前らはそのままでいいよ。
他の人が馬鹿の方法を鵜呑みにするのに疑問を持ってくれればね。
325名無しさん@そうだ選挙にいこう:2007/02/04(日) 12:53:18
>>321
偉そうな御講釈。ありがとう。
数学的に無知な速度厨の方ですか?
それともアルゴリズムに興味無い速度厨の方ですか?
いやあ、勉強になりましたwww
326名無しさん@そうだ選挙にいこう:2007/02/04(日) 12:56:10
>>323
VBA使用→可なんじゃないの。
「選択範囲」という用語が分かってるなら、検索したまえよ。
327名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:03:06
元に戻ることも含めてランダムじゃないか
328名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:11:56
>>324
>>326
EXCEL VBA 選択範囲 取得 などで先ほどから検索しているのですが…

y1 = ActiveCell.Row'選択範囲左上の行番号
x1 = ActiveCell.Column'選択範囲左上の列番号
y2 = Selection.Rows.Count'選択範囲の行数
y2 = Selection.Columns.Count'選択範囲の列数
として,Range(y1,x1,y2,x2)などとしてみたのですが…
うまくいきません。
329名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:14:38
>>327
数学やってる人に聞いてみればわかるよ。
俺もそう思ってた。
元に戻ることが重要じゃないんだ。
元の集団に戻すことがアホなんだ。
330名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:16:24
>>323
適当に直して
Sub sample1()
Selection.Copy Destination:=Selection.Offset(1, 0)
Selection.Offset(1, 0).Select
With Selection
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
End With
End Sub
331名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:23:56
>>330
ありがとうございます。
でも,思うような動作にはならないようですので,参考にさせていただきます。
332名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:24:11
ソートだのシャッフルだのというアルゴリズムはVBAが生まれる前から
プログラミングの世界では最も基本となるスタンダードな処理。
当然、その処理のためのアルゴリズムも何十年も前から様々に議論されてる。
その中の「間違い」と同じコードを書きながら「俺は正しい」みたいな
アホ丸出しの態度を散れるやつは井の中の蛙。恥ずかしすぎるww

偉そうに講釈垂れたいならせめて先人の苦労したノウハウくらいは頭に入れとけ馬鹿。
地方の中小企業の自称SEにでもなってお山の大将気取ってたいなら
そのままでおk。
333名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:29:04
>>325
m9(^Д^)プギャー

>>332
全くその通りだな
316みたいなバカはここには来ないで欲しい
334名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:34:28
VBAごときであらそうな( ´∀`)σ)´Д`)
335名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:54:26
>>334
そう思うよ。マクロの自動記録ベースで思ったようなことができるのが
VBAの魅力。好きに書けばいい。無駄なコードでも本人的にOKならそれでいい
ってのが魅力。

でも型変換に拘って速度廚っぷりを発揮してるくせにアルゴリズムは
馬鹿丸出し。しかも本人は気づいてもいないような馬鹿にはしっかり馬鹿だと
言ってあげないといけない。なぜなら馬鹿はいるだけでウザいから。
336名無しさん@そうだ選挙にいこう:2007/02/04(日) 13:56:51
>>316はまだ何が間違ってるのかわかってないんだろうな。
こういうヤツと仕事するとすげー疲れる。
能無しのくせに口だけは減らないヤツ。
337名無しさん@そうだ選挙にいこう:2007/02/04(日) 14:00:19
つーか速度にしてもあっちのが早いんだけどな。
338名無しさん@そうだ選挙にいこう:2007/02/04(日) 14:00:41
はいはい、おしまい。


↓次の質問ドゾー( ´_ゝ`)
339名無しさん@そうだ選挙にいこう:2007/02/04(日) 14:03:57
>>336
ゲラwww
お前が周りにそう思われてるってwwww
典型的wwwww
340名無しさん@そうだ選挙にいこう:2007/02/04(日) 14:04:47
>>338
ごめんごめん。もう書かないよ。
このスレを見てるVBA勉強したい人、馬鹿の断定は常に
疑って自分で試すことをしようね。
341名無しさん@そうだ選挙にいこう:2007/02/04(日) 14:54:46
>>339
余程悔しかったんだね
そんな顔真っ赤にしてモニター睨んでもどうにもならないよ
342名無しさん@そうだ選挙にいこう:2007/02/04(日) 15:40:16
だから、もうやめとけって馬鹿
343名無しさん@そうだ選挙にいこう:2007/02/04(日) 17:13:35
本当にやめとけよ、馬鹿!
344名無しさん@そうだ選挙にいこう:2007/02/04(日) 17:16:13
蒸し返して悪いが、>>312は下の2つを混同してると思うよ。

For i = 1 To 100 '100回シャッフル
  lngRnd = Int(Rnd() * 10)
  lngBuf = lngArray(lngRnd)
  lngArray(lngRnd) = lngArray(0)
  lngArray(0) = lngBuf
Next i

For i = 0 To 8
  lngRnd = Int(Rnd() * (10 - i)) + i
  lngBuf = lngArray(lngRnd)
  lngArray(lngRnd) = lngArray(i)
  lngArray(i) = lngBuf
Next i
345名無しさん@そうだ選挙にいこう:2007/02/04(日) 17:29:01
>>341
よく俺が血まみれだと分ったな。
いま341を殺してきたところだ。
346名無しさん@そうだ選挙にいこう:2007/02/04(日) 17:36:53
結局無理でした…
教科書並みとのことでしたが,検索しても欲しい情報には行き当たらず…

Sub Macro1()
y1 = ActiveCell.Row '選択範囲の左上の行番号
x1 = ActiveCell.Column '選択範囲の左上の列番号
y2 = Selection.Rows.Count '選択範囲の行数
y2 = Selection.Columns.Count '選択範囲の列数
Selection.AutoFill Destination:=Range(R&y1&Cx1:R&y2&Cx2), Type:=xlFillValues
Range(R&y1&Cx1:R&y2&Cx2).Select
End Sub
347名無しさん@そうだ選挙にいこう:2007/02/04(日) 17:47:40
>>346
Selection.Rangesは試したか?
348名無しさん@そうだ選挙にいこう:2007/02/04(日) 17:48:07
これもダメでした・

Sub Macro2()
y1 = ActiveCell.Row '選択範囲の左上の行番号
x1 = ActiveCell.Column '選択範囲の左上の列番号
y2 = Selection.Rows.Count '選択範囲の行数
y2 = Selection.Columns.Count '選択範囲の列数
Selection.AutoFill Destination:=Range(Cells(y1, x1), Cells(y2, x2)), Type:=xlFillValues
Range(Cells(y1, x1), Cells(y2, x2)).Select
End Sub
349名無しさん@そうだ選挙にいこう:2007/02/04(日) 17:54:16
>>347
やってみます。ありがとうございます。
350名無しさん@そうだ選挙にいこう:2007/02/04(日) 18:26:06
>>314
Sub hoge()
  With Selection
    For i = 0 To .Columns.Count - 1
      Range(Cells(.Row, .Column + i), Cells(.Row + .Rows.Count - 1, .Column + i)) = Cells(.Row, .Column + i)
    Next
  End With
End Sub
351名無しさん@そうだ選挙にいこう:2007/02/04(日) 18:28:59
>>331
式でも入っているのか?
Sub Sample()
Dim Rng As Range
Dim fillRng As Range
Set Rng = Selection
Set fillRng = Application.Union(Selection, Selection.Offset(1, 0))
Rng.AutoFill Destination:=fillRng, Type:=xlFillValues
End Sub
352名無しさん@そうだ選挙にいこう:2007/02/04(日) 18:34:05
>>350
ああ、そういうことか。
勘違いしてたよ。
353名無しさん@そうだ選挙にいこう:2007/02/04(日) 18:46:01
>>331
んじゃこれは?
Sub Sample2()
  Selection.Cells(1, 1).Copy Destination:=Selection.Cells(2, 1)
  With Selection.Cells(2, 1)
    .Borders(xlEdgeBottom).LineStyle = xlNone
     .Borders(xlEdgeRight).LineStyle = xlNone
     .Borders(xlEdgeLeft).LineStyle = xlNone
  End With
End Sub
354名無しさん@そうだ選挙にいこう:2007/02/04(日) 18:50:11
>>350
>>350
ありがとうございます。でも,やっぱり異なるようです。
参考にさせていただきます。

もともとの目的が,「CTRL+D 下方向コピー」で,罫線もコピーされてしまうことを
回避したいことですから,式が入っていることも多いですし,番地も相対的に変わって
ほしいわけです。

例えば,カレンダーを作るとして,日曜日の日付を羅列するときに,
A1 2007/2/4
A2 =A1+7
A3 =A2+7
・・・
となるとして,A2〜A50を選択してからCTRL+Dを押せば,一気にすべて下方向コピー
してくれるわけですが,罫線もコピーされてしまいます。それを回避したいと…

y1 = ActiveCell.Row '選択範囲の左上の行番号
x1 = ActiveCell.Column '選択範囲の左上の列番号
y2 = Selection.Rows.Count '選択範囲の行数
y2 = Selection.Columns.Count '選択範囲の列数
で,選択範囲の左上と右下の座標を取ることはできたので,
それを,Rangeの引数として入れることができればよいのですが…

もう少し頑張ってみます。

もう少し頑張ってみます。

355名無しさん@そうだ選挙にいこう:2007/02/04(日) 18:59:58
>>353
ありがとうございます。
でも,上左右の罫線を消すわけではなく,コピー先の元の書式(罫線)のままにしたいのです。

1.A1〜A50にはすでに同じような式が入っていて,罫線も引いてある。
2.A1の式を手直しした。
3.A1〜A50をctrl+Dで下方向へコピー
4.式はきちんと相対的な番地になってコピーされた。
5.でもA2〜A50の罫線も,A1のものになってしまった。
という流れのうち,5だけを削りたいと。

そろそろ疲れてきました…
356名無しさん@そうだ選挙にいこう:2007/02/04(日) 19:10:43
>5.でもA2〜A50の罫線も,A1のものになってしまった。
>という流れのうち,5だけを削りたいと。

何を削るのか良く分からない。
罫線は要るのに罫線を削りたいとはこれいかに?

まあ、詳しい情報が後から後から出てくるんじゃ仕方ないな('A`)
357名無しさん@そうだ選挙にいこう:2007/02/04(日) 19:20:51
>>355
そろそろ疲れてきました…

Sub Sample2()
  Dim Rng As Range
  Dim fillRng As Range
  Set Rng = ActiveCell
  Set fillRng = Selection
  Rng.AutoFill Destination:=fillRng
End Sub
358名無しさん@そうだ選挙にいこう:2007/02/04(日) 19:31:42
>>356
罫線を削りたいのではなく,「罫線が変更される」ということを削りたい という意味です。

「情報後出し」になってしまっているというご指摘ですが,
本来,>>341に書いたとおり,
>範囲指定した後,Ctrl+D で下方向へコピーできますが,罫線もコピーされてしまいます。
>「罫線がコピーされない下方向へのコピー」 をVBAで実現する方法を教えて欲しいです。
しかないのです。

「Ctrl+D での下方向コピー」は,もちろん「式」もコピーされますし,相対番地もきちんと
コピーされます。ただ罫線もコピーされてしまうのが難だと…
それとも「Ctrl+Dでの下方向コピー」とうショートカットキーは,データの中身も提示しないと
意図が伝わらないマイナーなショートカットキーだったのでしょうか…orz

>>357
ありがとうございます。後で試させていただきます…
359350:2007/02/04(日) 19:52:18
=Cells(.Row, .Column + i) を
=Cells(.Row, .Column + i).Formula に
360名無しさん@そうだ選挙にいこう:2007/02/04(日) 20:27:59
>>357
感激です。
Type:=xlFillValues
を付加して,ようやく完成しました…ありがとうございます。
Sub Macro357()
Dim Rng As Range
Dim fillRng As Range
Set Rng = ActiveCell
Set fillRng = Selection
Rng.AutoFill Destination:=fillRng, Type:=xlFillValues
End Sub

>>359
これもバッチリです。ありがとうございます。
Sub Macro359()
With Selection
For i = 0 To .Columns.Count - 1
Range(Cells(.Row, .Column + i), Cells(.Row + .Rows.Count - 1, .Column + i)) = Cells(.Row, .Column + i).Formula
Next
End With
End Sub

>>357は,コピー先の表示形式を変えず
>>359は,コピー先の表示形式をコピー元のものに変える
という違いがあって,それぞれ使い分けができそうです。
ありがとうございました。
361名無しさん@そうだ選挙にいこう:2007/02/04(日) 21:33:28
始めにある行を選択して、書式を Century にしました。
ところが、実際に入力すると MSP明朝になってしまうのはどうしてでしょうか?
入力のときは、半角英数でアルファベトを入れてるんでsが。
362名無しさん@そうだ選挙にいこう:2007/02/04(日) 21:59:36
すんませんヒントきぼん

環境
XP,office2003

やりたいこと
雛形にcsvを流し込みたい
(ハメこみたい)

なんかヒントありましたら
ご教示ねがいますm(._.)m
363名無しさん@そうだ選挙にいこう:2007/02/04(日) 22:01:40
>>344
m9(^Д^)プギャー
364名無しさん@そうだ選挙にいこう:2007/02/04(日) 22:30:30
エクセルXPでVBA可です
セル内に × がいくつあるか判定できる方法ってあります?
例えば
「100」なら 0
「100×200」なら1
「100×200×300」なら2
ってな感じの値を隣の列に出し、それにIF文で処理わけするつもりなんです。
LEFT関数とか組み合わせればいけそうなんですが脳味噌がたりないようです。どなたか知恵貸して下さい
365名無しさん@そうだ選挙にいこう:2007/02/04(日) 22:49:44
>>364
split関数を使うとか
366名無しさん@そうだ選挙にいこう:2007/02/04(日) 23:01:04
>>364
1)何も無いシートのB列にずらっとデータを貼る。
2)データ→区切り位置。「×」で区切る。
3)A1に「=COUNTA(B1:IV1)-1」。下までフィル。

A列が答え。
367名無しさん@そうだ選挙にいこう:2007/02/04(日) 23:03:03
>>361
セルの書式設定→フォントタブ

>>362
状況が見えてこない
368名無しさん@そうだ選挙にいこう:2007/02/04(日) 23:03:51
>>360 それ以外の違いとして、
>>357の処理は1列のみ、それとActiveCellだから
下から上に選択した場合、一番下の値がコピーされる。
これは Ctrl+D と異なる。

>>363 ども
369名無しさん@そうだ選挙にいこう:2007/02/04(日) 23:04:55
>>364
A1にデータがあったらB1とかに=LEN(A1)-LEN(SUBSTITUTE(A1,"×",""))
でできる。
370名無しさん@そうだ選挙にいこう:2007/02/04(日) 23:08:31
>>362
どっちかでやるんだろうね。
1) VBAでCSVを直読みして好きなように雛形に貼り付けていく
2) Sheet1に雛形、Sheet2でCSVを読み込む。Sheet1からSheet2へしこしこと
 参照式を書いていく。CSVってんだから同じ形式なんでしょ。
371364:2007/02/04(日) 23:09:38
>366 サンキュ、それでいきます
>365 それつかったほーが軽そうだから時間あるときやってみまーす
372364:2007/02/04(日) 23:11:21
>369 それサイコーです考えて形です
ありがとです
373名無しさん@そうだ選挙にいこう:2007/02/04(日) 23:39:06
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA Worksheet_Calculate

下のようなシートで、A列に名前が、E列に式が入っています。
B列からD列は数値入力用のセルです。

  A    B  C  D  E
1 山田  2  1  2  =sum(B1:D1) 
2 佐藤  1  2  1  =sum(B2:D2)
3 鈴木  1  1  2  =sum(B3:D3)
4 田中  1  2  1  =sum(B4:D4)

さて、特定の行を入力していて、途中でも、
その行のD列の計算値が5以上なら、メッセージボックスで
"山田さんの数値が5を超えています"のように、当該行A列
の文字列を表示させたい場合、どのようなマクロを書いたら
よいのでしょうか?

ちなみにシートの中には、他にもたくさん式が入っており、
セルE1〜E4までの範囲の中だけでこの処理を行いたいです。
宜しくご教示お願いいたします。
374373:2007/02/04(日) 23:43:09
訂正です。

下から8行目
「その行のD列の計算値」×
「その行のE列の計算値」○
 スミマセン m(_ _)m
375名無しさん@そうだ選挙にいこう:2007/02/04(日) 23:46:25
>>373
条件付書式で一発ですよ
376373:2007/02/04(日) 23:55:02
>>375
お返事ありがとうございます。条件付き書式でE列の表示を変える
ことは出来るのですが、「○○さんの数値が5を超えています」
のような警告をだしたいのです。
377名無しさん@そうだ選挙にいこう:2007/02/05(月) 00:09:46
>>376
ならデータの入力規則ってやつでおけ
378373:2007/02/05(月) 00:23:13
>>377
たしかにそれでもいいのですが、VBAでそれをやったら
どのようになるのか、知りたくて書き込みました。
わざわざなんでそんなことをするのと叱られそうですが
教えてください。
379名無しさん@そうだ選挙にいこう:2007/02/05(月) 01:21:01
>>378
うっとうしいかも

Private Sub Worksheet_Calculate()
  Dim i As Integer
  For i = 1 To 4
    If Cells(i, 5).Value >= 5 Then
      MsgBox Cells(i, 1).Value & "さんの数値が5を超えています"
    End If
  Next i
End Sub
380373:2007/02/05(月) 01:59:13
>>379
大変ありがとうございます。すごい…。
でも仰るとおりうっとうしいですね。

入力した行の式が格納されたところだけ、
判定してくれるようにしたいです。いい手はありませんでしょうか?
381名無しさん@そうだ選挙にいこう:2007/02/05(月) 02:22:49
5以上で通知するの?それとも5を越えたら通知するの?
「5」は、「5以上」だけど「5」を越えてはいない。>=なのか>なのか解らん。

それと、5以上の場合は、通知するだけで入力訂正の必要は無いのかい?
入力訂正を義務付けないなら、複数箇所で5以上になる可能性が出てくるわけだが、その場合はどうするの?
最後に入力した部分だけ通知するのか、5以上のもの全て通知した方が良いのか。

もうちょっと条件固めようよ。
あと、俺だったらMsgBoxではなくBeepとStatusBarで通知するな。
382373:2007/02/05(月) 02:43:30
>>381
スミマセンはっきりしてなくて…。

5>=です。

入力訂正の必要はありません。(警告だけ)

最後に入力した部分だけ通知したいです。
383373:2007/02/05(月) 02:45:50
訂正します。
>= 5 です
384名無しさん@そうだ選挙にいこう:2007/02/05(月) 03:15:42
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("B1:D4")) Is Nothing Then Exit Sub
  If Target.Count > 1 Then Exit Sub
  With Target.EntireRow
    If .Cells(5).Value >= 5 Then MsgBox .Cells(1).Value & "さんの数値が5を超えています"
  End With
End Sub
385373:2007/02/05(月) 06:16:19
>>384
ありがとうございます。完璧です!!
386名無しさん@そうだ選挙にいこう:2007/02/05(月) 09:54:25
教えてください。

1001東京池袋店
1002広島店
1004鹿児島店

ある項目に上記の3つのデータがあるとして別項目にこの項目の
最初の4桁だけを以下のように置換えて一括入力するにはどんな関数を使えばいいのでしょうか?

1001
1002
1004
387名無しさん@そうだ選挙にいこう:2007/02/05(月) 10:30:42
LEFT
詳しくはネットで検索してください
388名無しさん@そうだ選挙にいこう:2007/02/05(月) 10:35:11
>>386
単なる置換え?
4桁の数字を入力したら前文のデータが入るようにしたいの?

夜勤明けなんで頭回らんのだ
分かりやすく説明ヨロシク
389386:2007/02/05(月) 10:37:34
>>387
ありがとうございました。
390386:2007/02/05(月) 11:48:07
>>388
レスを見落としました。回答ありがとうございます。
>>387さんのLEFT関数でうまくいきました。

もうひとつ質問が出てきてしまったのでまたお願いします。

>>386で変換した下記の値を文字列に変更するにはどうすればいいのでしょうか?

1001
1002
1004
391名無しさん@そうだ選挙にいこう:2007/02/05(月) 14:59:46
LEFT の戻り値は文字列、わざわざ変更する必要はない。
数値に変更したいのであれば VALUE
392名無しさん@そうだ選挙にいこう:2007/02/05(月) 15:05:26
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windows2000とXP
【2 Excelのバージョン   】 Excel2003と2007
【3 VBAが使えるか    .】 いいえ (使わないとできないなら覚えます)
【4 VBAでの回答の可否】 一応可
【5 検索キーワード     】 エクセルの説明が載っているサイトを見てみましたがわからないのでお願いします。

現在エクセルで商品管理や顧客管理を行っています。
日付、顧客の名前、住所、連絡先、注文商品番号
のように分けているのですが
商品番号は
001.003.009.052.006
のようにピリオドで区切り一つのセルに入れています。
これを今までのデータなどすべて売り上げランキングのようなものを出したいのですが
どのようにすればいいでしょうか?
現在は001などで検索をかけて数えています。
393386:2007/02/05(月) 15:23:03
>>391
ありがとうございました。
うまくいきました。

>文字列に変更するにはどうすればいいのでしょうか?←×間違いでした

数値に変更するにはどうすればいいのでしょうか?←○正しくはこっちでした。
394名無しさん@そうだ選挙にいこう:2007/02/05(月) 15:28:08
>>392
商品番号の入ったセルだけを全部コピーする
適当に新規作成でまっさらなBookに貼り付ける
名前を付けて保存→、txt形式(タブ区切り)で保存
保存したtxtファイルを適当なエディタで開き、置換「.」→「,」
csv形式で保存し、それをエクセルで開く
好きなように図表作っておk。

まずピリオドを使うような糞システムの開発に文句言え
395名無しさん@そうだ選挙にいこう:2007/02/05(月) 15:51:49
>>392
[データ]-[区切り位置]で[区切り文字]の「その他」に「.」を指定すればいいよ。

>>394
テンキーだけで読み上げながらデータ入力してんじゃね?
ものすごい普通の入力方法だよ?
396392:2007/02/05(月) 16:05:07
ありがとうございます。
1個のセルに1つの数字になるようですが
今後データを入力するときは1個のセルに1個のデータの方がいいのでしょうか?
その場合は別に注文表だけのファイルを用意しようかと思います。
397392:2007/02/05(月) 16:07:55
すみません別のファイルではなくシートでした。
398名無しさん@そうだ選挙にいこう:2007/02/05(月) 16:11:12
>>392
セル内で番号の重複なし、番号桁数固定なら、E1:E20に番号が入っているとして
=SUMPRODUCT((SEARCH("001",$E$1:$E$20&"."&"001")<=LEN($E$1:$E$20))+0)
とか
399392:2007/02/05(月) 16:30:53
>>398
ありがとうございます。
重複は別のセルにすればいいのですが
商品数は200ほどあるのでその場合全部作らないといけないことになるので
グラフでやっても大変なことになりそうです。

例えば
別のシートに売り上げ個数順(もしくは注文番号順)にならべ下記の用に横のセルに売り上げ数字を出すことは叶でしょうか?

001 6
005 5
004 4
009 4
035 3
400名無しさん@そうだ選挙にいこう:2007/02/05(月) 16:40:29
>>389
とりあえず、多少なり調べるか試してからレスしろ
ちょっとベースさえ作れば簡単な事を1から全部他人に丸投げすんな
401名無しさん@そうだ選挙にいこう:2007/02/05(月) 16:41:31
丸投げおk擁護派が登場すると見たw
402386:2007/02/05(月) 16:51:20
VLOOKUP関数で値が見つからなかったときには#N/Aのようなエラー表示になるのですが
その場合未定義or空欄(表示上)にする方法を教えてください。
403386:2007/02/05(月) 16:54:25
>>400
一応ぐぐって調べているんですが調べ方が足りなかったかもしれません。
もうちょっと調べてから質問します。
404名無しさん@そうだ選挙にいこう:2007/02/05(月) 17:01:10
>>400>>389へのレスなのか?>>399へのレス間違いなのか?
解決してるのに何故今更
405名無しさん@そうだ選挙にいこう:2007/02/05(月) 17:05:15
>>402
IFとネスト。
406386:2007/02/05(月) 17:30:49
>>405
ぐぐりまくって何とか解決しました
http://support.microsoft.com/kb/816370/ja
このページのやり方でうまくいきましたがこんなに複雑な式になるとは
思いませんでした。

>>404
>>400は私へのレスじゃなかったのかも?
407名無しさん@そうだ選挙にいこう:2007/02/05(月) 17:44:52
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

機能があるか教えてください。

1 12
3 16
6 18  こんなのを

1 12
2 12
3 16
4 16
5 16
6 18

見たいに、連続値データにできますか?
フィルではできませんでした。教えてください。
408名無しさん@そうだ選挙にいこう:2007/02/05(月) 17:46:24
>>407
無い
409名無しさん@そうだ選挙にいこう:2007/02/05(月) 17:52:39
>>408
そうですか。ありがとうございます。
410392:2007/02/05(月) 17:56:38
すみませんたぶん私へのレスですね。
もう少し調べてみます。
411名無しさん@そうだ選挙にいこう:2007/02/05(月) 18:33:30
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否


A    B       C
5    4      −1
6    3      +3
5    5      +- 0


こんな風にA〜Bを引いて、Cに答えを出すときに、自動的に+とかマイナスとかに出す設定は
ありますか?
また、+-のように出すようにするにはどうしたらいいですか?
412名無しさん@そうだ選挙にいこう:2007/02/05(月) 18:38:41
>>411
セルの書式設定
413名無しさん@そうだ選挙にいこう:2007/02/05(月) 18:49:14
>>412
書式設定によって、マイナスは設定できるのですが、+と、+-が出来ません

どこを設定すればよいのですか?
414名無しさん@そうだ選挙にいこう:2007/02/05(月) 18:58:33
書式設定→表示形式から探せ
ちょうど自分の用途に合うものがピッタリ無ければ
一番下のユーザー定義で設定
415名無しさん@そうだ選挙にいこう:2007/02/05(月) 19:03:41
>>411
ユーザー定義で以下の一行を入れて。
[>0]"+"0;[=0]"+-"0;[赤]0

>>414
それが見つけられないし、作れないんだろ。
416414:2007/02/05(月) 19:09:27
そこまで言えば
ユーザー定義 書式設定 等で検索すれば
幾らでも作り方ぐらいヒットするだろ。
417名無しさん@そうだ選挙にいこう:2007/02/05(月) 19:30:32
>>415
>>416
ありがとうございました。  
自分で出来るだけやってみます
418名無しさん@そうだ選挙にいこう:2007/02/05(月) 19:32:49
>>415
表示形式は、標準で 「正数;負数;0;文字列」 という形式なので正数と負数と0で表示形式を分けるなら、[>0]とか[=0]等の条件は不要。
ついでに言うと+,-符号は""囲みしないのが慣例になってる。+-の代わりに±を使うなら""囲み必要だけどね。

[>0]"+"0;[=0]"+-"0;[赤]0
  ↓
+0;-0;+-0

それに[赤]が必要とも書いてないので、親切のつもりなら[赤]は抜いておいて「最後の 0 を [赤]0 にすると、負数が赤文字になるよ」と添えるのが良いのでは?
俺が書いたやつなら「真ん中の -0 を [赤]-0 にすると、負数が赤文字になるよ」だね。
そうでないと無駄で余計なお節介になりかねない。(もしかしたら書き忘れただけで希望通りかも知れないけど)
419名無しさん@そうだ選挙にいこう:2007/02/05(月) 19:34:37
>>418
すまん、ググって適当にコピペしたもんで。
420名無しさん@そうだ選挙にいこう:2007/02/05(月) 19:58:45
教育改革の犠牲者だから仕方ないよ
ほんと生まれた時代が悪かったね
可哀想〜〜〜〜〜
421名無しさん@そうだ選挙にいこう:2007/02/05(月) 21:36:53
>>360
修正したお

Sub Sample3()
  Dim Rng As Range
  Dim fillRng As Range

  On Error Resume Next
  Set Rng = Selection.SpecialCells(xlCellTypeFormulas)
  If Rng Is Nothing Then
    Set Rng = Selection.SpecialCells(xlCellTypeConstants)
  End If
  On Error GoTo 0
  Set fillRng = Selection

  Rng.AutoFill Destination:=fillRng, Type:=xlFillValues
End Sub
422名無しさん@そうだ選挙にいこう:2007/02/05(月) 21:46:33
エクセルの条件付き書式で、あるセルに何かしらの文字が入っていたら色を変えるということをやりたいのですが、
どうやったらいいでしょうか?
特定の文字のやり方は分かったのですが、
不特定の文字の場合はどうすればいいのかが分かりません。
423名無しさん@そうだ選挙にいこう:2007/02/05(月) 21:48:28
>>422
ヒント:何か文字が入っている=空白ではない
424417:2007/02/05(月) 22:05:47
>>418
ありがとうございます。
その形でやってみました。
そしたら・・・


>>411を例として話します。
C2に、=A2−B2
ってしたら、なぜかエラーが出てしまって・・・
エラーが出る原因がわからず、そこから先に進みません・・・

425名無しさん@そうだ選挙にいこう:2007/02/05(月) 22:08:58
>>422
[セルの値が]→[次の値に等しくない]→[=""]
426392:2007/02/05(月) 22:30:56
すみませんシートからシートで関数を使うやり方はわかったのですが
希望の方法のやりかたが見つからないので教えてもらえないでしょうか?
現在はシート1に顧客の情報
シート2に顧客の名前と注文を入れています。
シート3に上から順に
|商品番号|売れた数|
の形式で売れた数の順でソートをかけたいのですが
リストや集計ではうまくできないのでやり方を教えてください。


427名無しさん@そうだ選挙にいこう:2007/02/05(月) 23:11:22
>>423,>>425
レスありがとうございます。

[数式が]で、複数の条件をつけるにはどうしたらいいのでしょうか?
Aセルが「日曜日」という条件と、
Bセルに何かしら不特定の文字が入っている場合に条件付き書式で書式を変えたいのですが。。。

「!=」←こういう条件は使えないみたいで困っています・・・
428名無しさん@そうだ選挙にいこう:2007/02/05(月) 23:19:56
>>426
.区切りの状態からやりたいならVBA使った方が手っ取り早いよ
商品番号が固定桁数なら、ちょっと邪道だが全行の商品番号をつなぎ合わせた文字列を作り、
商品番号でSlpitしてUBoundを調べるだけで、その商品番号が何個含まれてるか解るよ。
429427:2007/02/05(月) 23:20:39
どうやら「<>」を使えばできるみたい?ですかね?
430名無しさん@そうだ選挙にいこう:2007/02/05(月) 23:24:24
>>427
関数の「IF、OR、AND」を調べてごらん
431427:2007/02/05(月) 23:34:53
ORは使ってたんですが、「!=」のやり方が分かりませんでした。
「<>」を使ったらできました。ありがとうございました。m(_ _)m
432名無しさん@そうだ選挙にいこう:2007/02/05(月) 23:40:03
>>427
追加ボタンを押して条件を追加したらダメなの?
433名無しさん@そうだ選挙にいこう:2007/02/05(月) 23:56:23
内部収益率を算出するXIRRという関数がありますが、これを自前で計算することは
可能でしょうか?よろしくお願いします。
434名無しさん@そうだ選挙にいこう:2007/02/06(火) 00:03:27
>>433
それがめんどくさいから関数が用意されてるわけで・・・
それでも良いなら自分でIRRの公式に該当セルを入れてけば。
435427:2007/02/06(火) 00:03:43
>>432
追加で設定できる条件は3つまでのようで、
全て使い尽くしてしまっている関係上無理でした。
Excel2007では条件追加は無制限らしいので羨ましいですねぇ。
436名無しさん@そうだ選挙にいこう:2007/02/06(火) 00:04:31
>>433
Excelとしては可能。
君自身がそれを可能とするスキルを持ち合わせてるかどうかは知らないけど。
437名無しさん@そうだ選挙にいこう:2007/02/06(火) 00:05:48
>>433
ネットとかで調べないでこんなところで聞くの?
438433:2007/02/06(火) 01:32:45
レスありがとうございます。
現在Excelで内部収益率を算出しているのですが、別言語で算出する必要が
ありましてうまく算出する方法があるのかと思い質問させていただきました。
ネットでもある程度は調べたつもりですが、いい案が記載されているものが
見つからなかったため、こちらで質問させていただきました。
言葉足らずで済みませんでした。
439名無しさん@そうだ選挙にいこう:2007/02/06(火) 01:42:20
そういうことならスレ違いだし
440たのんます:2007/02/06(火) 02:07:19
エクセルに関する質問なんですが
統計数字データをグラフに変換して、統計データによるグラフを作成する際に
統計データの始点と終点を同じにして、重ねて比べられるようなグラフにしたいのですが
統計データの量が、比較したいAとBでは異なるため、
始点終点を同じにして、重ねて比べることができません。
何か関数とかその他の方法で、
違うデータ量のものを重ねて比較する方法はないでしょうか?
441名無しさん@そうだ選挙にいこう:2007/02/06(火) 02:19:24
あるけどマルチしたので教えません
442名無しさん@そうだ選挙にいこう:2007/02/06(火) 13:45:23
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類         .】 Windowsxp
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 2軸上 縦棒 複合グラフ

2軸上の縦棒と折れ線の複合グラフというのがありますが
縦棒のみで複合グラフを作りたいと思っています。
ただ、やろうとするとグラフの縦棒が重なってしまいます。
重ならないようにする方法はありますか?
443名無しさん@そうだ選挙にいこう:2007/02/06(火) 13:55:26
>>442
質問の内容がハッキリつかめないが
http://www.uploda.org/uporg682724.jpg
↑こういうのなら重ならないようにする方法はある。
444名無しさん@そうだ選挙にいこう:2007/02/06(火) 14:01:15
>>443
その画像のようなもので右軸の目盛りが
たとえば10,20,30,40,50となっているようにしたいのです。
445名無しさん@そうだ選挙にいこう:2007/02/06(火) 14:19:55
>>444
グラフウィザードで、グラフの種類を「積み上げ棒グラフ」にすりゃいい。
あと、目盛りの間隔は、グラフが出来てから、目盛りの所を右クリックして
軸の書式設定から変えれる。
446名無しさん@そうだ選挙にいこう:2007/02/06(火) 14:37:31
>>445
ごめん、言い方が悪かった。
積み重なってちゃマズイ。
目盛り幅が違ってて横に並んだ状態にしたい。
447名無しさん@そうだ選挙にいこう:2007/02/06(火) 15:53:17
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

エクセル表の一番上の行に「品名」「数量」など項目の行がある。
印刷すると2枚目以降はこの一番上の行が印刷されない。
プレビューの設定をさんざん見たけど分かりませんでした。
2枚目以降も印刷する場合の設定法をお教えください。
448名無しさん@そうだ選挙にいこう:2007/02/06(火) 16:00:21
ページ設定、シートタブの印刷タイトル
449名無しさん@そうだ選挙にいこう:2007/02/06(火) 16:07:56
>>448
どうもありがとうございます。
そこは何度も見ているのですが、チェック箇所がグレーになっており
クリックできません。白くなっている状態にするにはどうしたら
いいですか?何度もすみません。
450名無し募集中。。。:2007/02/06(火) 16:17:38
プレビューの設定からではなく

ファイル→ページ設定
451名無しさん@そうだ選挙にいこう:2007/02/06(火) 16:20:19
わかった!!ありがとうございました!
452名無しさん@そうだ選挙にいこう:2007/02/06(火) 16:24:21
プレビューから入らずに
ファイル→ページ設定
453名無しさん@そうだ選挙にいこう:2007/02/06(火) 18:08:47
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可

Wordに2列10行ほどの表があります。(シンプルなプロフィール表みたいなもの)
左の列に項目名(住所、氏名、電話etc)、右に内容となっています。
毎ページごとにこの表が1個あり、改ページがなされています。
これが100ページほどあります。
巨大な1個の表であればExcelで取り込んでしまえると思うのですが、このように
統一形式の表が大量に毎ページあるようなものをExcelに取り込む方法は無い
でしょうか?

住所 氏名 電話
xxx  aaa  1234
zzz  bbb  5678

このようなExcel表へと取り込みたいと考えています。
454名無しさん@そうだ選挙にいこう:2007/02/06(火) 18:15:49
>>453
項目が全ページ同じ行数なら、Excelにベタっとコピペして、
項目の方の列(A列か?)で並び替えれば、
名前ばかり→住所ばかり→電番ばかり→…って感じになるだろうから
別シートにでも貼り付けたら。
455名無しさん@そうだ選挙にいこう:2007/02/06(火) 19:15:12
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 不可


A   B   C   
5   7   4
3   5   5
3   6   1
・    ・   ・
・    ・   ・


たとえば、C列だけ一気に(   )をつけることは出来ますか?
456名無しさん@そうだ選挙にいこう:2007/02/06(火) 19:17:09
>>455
D1に、
="("&C1&")"
下方向にフィル。
457名無しさん@そうだ選挙にいこう:2007/02/06(火) 19:30:14
>>456
ありがとうございます。

ついでといってはなんですが、その関数(っていうのかな?)の意味ってどういう意味ですか?
ダブルクオテーションの使い方というか・・・
お願いします。
458名無しさん@そうだ選挙にいこう:2007/02/06(火) 19:32:59

ついでといってはなんですが、自分で調べてみてはいかがですか
お願いします。
459名無しさん@そうだ選挙にいこう:2007/02/06(火) 19:55:32
すみません、また自動保存の件なんですが、10分ごとに自動保存する設定
にしていると、最後にファイルを閉じるときに「変更を保存しない」を選択
しても、最初にファイルを開いたときの状態にはもどないんですが、どうした
らいいでしょうか?

460名無しさん@そうだ選挙にいこう:2007/02/06(火) 19:56:18
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel 関数 中身

Excel関数の中身って分からないのでしょうか?
MSだけのひ・み・つなのでしょうか?

こんな事を聞くのは、例えばExcel2007でCOUNTIFSとか新しい関数が使えますよね。
こういうなのはユーザー定義関数とかで同じような機能を実現できないでしょうか?
いちからというのはとても…という感じなのでヒントでもないかなあと思って。
C言語とかみたいに関数の使い回しとか出来たらいいのにと思います。
宜しくおねがいします。
461名無しさん@そうだ選挙にいこう:2007/02/06(火) 20:00:16
>>460
VBAからもWorksheetFunctionオブジェクトのメンバとしてワークシート関数が呼び出せるが
当然ソース自体は参照できないよ。仮にも商用ソフトだからね。
462名無しさん@そうだ選挙にいこう:2007/02/06(火) 20:15:53
>>459
多分、そのアドイン誰も使ってないから、MSに質問しては?
463名無しさん@そうだ選挙にいこう:2007/02/06(火) 20:20:13
>>462
ありがとうございました。あきらめます。
464460:2007/02/06(火) 20:23:42
>>461
レスありがとうございます。
やっぱりブラックボックスなんですね。
465名無しさん@そうだ選挙にいこう:2007/02/06(火) 20:26:20
1から全部自分で作れば桶
466名無しさん@そうだ選挙にいこう:2007/02/06(火) 20:40:11
>>465
それが出来れば苦労はしない
467名無しさん@そうだ選挙にいこう:2007/02/06(火) 21:28:34
>>460
Excel2000(無印)でマイクロソフトがパスワードかけ忘れで、アドインの関数が読めた。
468名無しさん@そうだ選挙にいこう:2007/02/06(火) 21:58:50
>>466
苦労して汗水たらして生きていくんだ
その先に きっと希望はあるから OH My Baby
469名無しさん@そうだ選挙にいこう:2007/02/06(火) 22:32:20
>>468
汗かくの嫌いだもん
470名無しさん@そうだ選挙にいこう:2007/02/06(火) 22:46:43
じゃあ死ね とにかく死ね
471名無しさん@そうだ選挙にいこう:2007/02/06(火) 22:48:40
命を粗末にしちゃいけない
472名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:08:07
これがExcelのスレでのやりとりかw


468 名無しさん@そうだ選挙にいこう sage 2007/02/06(火) 21:58:50
>>466
苦労して汗水たらして生きていくんだ
その先に きっと希望はあるから OH My Baby

469 名無しさん@そうだ選挙にいこう sage 2007/02/06(火) 22:32:20
>>468
汗かくの嫌いだもん

470 名無しさん@そうだ選挙にいこう sage 2007/02/06(火) 22:46:43
じゃあ死ね とにかく死ね

471 名無しさん@そうだ選挙にいこう sage 2007/02/06(火) 22:48:40
命を粗末にしちゃいけない
473名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:33:22
フラシュメモリーに保存してるファイルが開けん
サイズは6MB
会社では開けるxp
自宅98


474名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:35:48
>>472
(´;∀;)イイハナシダナー
475名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:38:30
>>473
自宅のExcelのバージョンを上げて下さいです。
下位互換。
476名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:51:51
それExcelのバージョンか?
477名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:55:33
フラッシュメモリのドライバをインストール
Excelをインストール
478名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:56:14
なんで6MBもあるんだ?
変なもの入れてるな。
479名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:58:47
>>475
くぐってきたが脳が末期った
>>476
osです
>>477
高度すぎる
480名無しさん@そうだ選挙にいこう:2007/02/06(火) 23:59:55
>>478
ワークシートのみです
481名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:04:48
策を出してもこうもやる気がなく、ネタで返すなら、諦めた方がいいな。
482名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:05:14
USBフラッシュメモリは、WinXPでは自動認識されますが
Win98では、デバイスドライバをインストロールしないと
認識されません。フラッシュメモリを認識した上で読めないのか
メモリ自体が認識できないのか、切分けてください。
483名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:13:09
>>481
気に障ったらスマン

>>482
認識はしてる
一緒に入ってるファイル KB程度はサックと開く
MBのファイルをクリックすると
ファイルを開いていますとなり、フリーズみたくなる


>>475
で、あった様に新しいのをインストールすれば解決するとは思うが


知恵を借りたい
484名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:16:05
>>483
可能性的には、外部メモリに移す際にファイルが壊れたものと思う。
そのファイルをデスクトップなどにコピーしても開けないか?
あとそのファイルは、もともとMBあったのか?
画像とか貼りまくってんのか。
485名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:19:21
HDD上にコピーしてから開いてみろ
486名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:20:15
>>484
デスクトップに移しても同じ症状だ
容量がでかいのが原因?
ファイルはワークシートが6つに計算式
487名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:24:01
出し惜しみすんなよ。Excelのバージョンは同じなのか?
同じであれば、きっと壊れてんぜぇ。
デカいのが原因じゃなく、移す際にファイルが壊れてる。
例えば、データの断片が入りきる前に抜いたとか。
488名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:25:41
ExcelViewer使って開かんかな?
開かなかったらファイルが壊れているかメモリ不足だと思う。
マンキツでも逝って来い。
489名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:28:02
ExcelViewer2003はWindows98にはインストールできないと思った
490名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:28:42
ExcelViewerは根本が同じだから無理だとオモ
他社製のExcel読めるアプリがあれば、断片的に数字を見る事は可能かも。
ファイルメーカーなどの簡単なデータベースソフトとか。
491名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:32:07
OpenOffice 2.0.4 か・・・
492名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:32:20
Vista買え!
493名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:33:40
>>487
会社のは2002以上だと思う
自宅のはexcel2000みたいだ

>>488
ダウンロードしてみる
494名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:36:08
>>489
ほんとだ

サポートされているオペレーティング システム : Windows 2000 Service Pack 4; Windows Server 2003; Windows XP

だって
495名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:37:58
まずExcelViewerでいけたとして、見るだけのソフトなのだが、
それで良いのか、とw

あれだな、2002ファイル形式でしか無い機能使ってたりするんだろうな。
ファイルは生きてるが、下位バージョンでは開けないと。
496名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:39:08
壊れていないことが分かるだけでも前進だ
497名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:39:29
>>489
>>490
新しいwindowsが必要って言われた


買い換えは考えているが
明日、使うんだよなぁ
498名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:40:51
>>497
491が言ってたOO.orgは?
499名無しさん@そうだ選挙にいこう:2007/02/07(水) 00:46:52
>>498
ダウンロードしてみる
10分くらいかかるみたいだ
500名無しさん@そうだ選挙にいこう:2007/02/07(水) 01:20:04
インストールはできた
ファイルをクリックすると
ドキュメントを開く、行の高さを調節ってのはサクサクと進んだが
計算ってとこで少しずつ進んでいる状況
501名無しさん@そうだ選挙にいこう:2007/02/07(水) 02:34:49
ある列の任意のセルをダブルクリック(DC)すると
その列の数値が最初のDCで昇順に、次のDCで降順に
ソートされるようにしたいと思います。
(各行のデータも列と一緒に並べ替えます。)

拾ったコードを混ぜ合わせたものの、所詮は私、ここまでが限界でした。
xlDescending も使うことになるはずなのですがorz

Sub prcSort()
ActiveSheet.OnDoubleClick
Range("A2:G60").Sort _ 'A1からG1まではデータ種別が入っています'
Key1:=Column. _ 'ここがまずいのでは・・・'
, Order1:=xlAscending _ '昇順'
, Header:=xlGuess _
, MatchCase:=False _
, Orientation:=xlTopToBottom _
, SortMethod:=xlPinYin
End Sub

当然、このままではエラーが出てしまいます。
有識者の方、どうか回答をお願いします。

【1 OSの種類         .】 Windows XP Professional
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 ・・・は、はい、ColorIndex云々程度なら(汗)
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 Excel VBA 並べ替え ダブルクリック 等
502名無しさん@そうだ選挙にいこう:2007/02/07(水) 03:07:35
今は2000を使ってるんですがそれより新しいエクセルって
セルにフォーカスするだけで計算式に含まれるセルの枠の色が変わるようになってないですか?
計算式チェックを手早くしたいので
503名無しさん@そうだ選挙にいこう:2007/02/07(水) 06:26:03
>>501
Private lngBeforeSortCol As Long

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Row <> 1 Then Exit Sub
  Dim lngTargetCol As Long
  lngTargetCol = Target.Column
  If lngTargetCol > 7 Then Exit Sub

  Range("A2:G20").Sort Key1:=Target, Order1:=IIf(lngBeforeSortCol = lngTargetCol, xlDescending, xlAscending)
  lngBeforeSortCol = IIf(lngBeforeSortCol = lngTargetCol, 0, lngTargetCol)
  Cancel = True
End Sub

こういうことか?

>>502
2003だと
メニュー > ツール > オプション > 表示 > ウィンドウオプション > □数式
にチェックを入れると、セルの表示が数式結果ではなく数式そのものになり
そのセルを選択すると参照先が色枠表示されるようになる。
確か2000でも同じようなことが出来たような気がするが。

いちいちオプションダイアログで切り替えるのが面倒なら、ツールバーを右クリックして
ユーザー設定 > コマンド > ツール > ワークシート分析モード(たぶん一番下の方)
のコマンドボタンをツールバーに出しておくと良い。Ctrl+Shift+@でも切り替えられる。
504名無しさん@そうだ選挙にいこう:2007/02/07(水) 09:48:27
フォントは普通何使えばいいんだ?
505名無しさん@そうだ選挙にいこう:2007/02/07(水) 09:51:29
>>504
普通って何だ。
デフォルトは「MS Pゴシック」。
506名無しさん@そうだ選挙にいこう:2007/02/07(水) 10:01:46
>>505
会社の書類を作り直さなきゃいけないんだが
記号とか入ってると文字の幅が下と崩れたりするから
通常、皆さんはどぉしてるのかと…。
507名無しさん@そうだ選挙にいこう:2007/02/07(水) 10:07:57
>>506
書類によるから「普通」とかは無い。
文字の横幅を揃えたいだけなら、「MS ゴシック」など
等幅フォントを選んでおけば、安定。
508名無しさん@そうだ選挙にいこう:2007/02/07(水) 10:28:59
>>506
dd
509名無しさん@そうだ選挙にいこう:2007/02/07(水) 12:29:10
画面上でのセルの数字は「50,422」でもクリックすると数式が入っていて
「=G147-N147」などの場合、数式はコピーせずに画面上に現れた数字のみを
コピーすることはできますか?
510名無しさん@そうだ選挙にいこう:2007/02/07(水) 12:38:41
>>509
貼り付けるときに形式を選択すればおk
511名無しさん@そうだ選挙にいこう:2007/02/07(水) 12:50:07
>>509
貼り付けたいセルを選択→Altキー→Eキー→Sキー→値を選択→Enter
512名無しさん@そうだ選挙にいこう:2007/02/07(水) 13:36:30
【1 OSの種類         .】 WindowsXPsp2
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 少し
【4 VBAでの回答の可否】 可

教えてください。
ユーザフォーム上にテキストボックスとラベルとボタンがあり、ボタンを押して
各コントロールに書かれているテキストを取ろうと
Private Sub CommandButton1_Click()
MsgBox TextBox1.Text
MsgBox Label1.Text
End Sub
としましたが、実行すると「コンパイルエラー:メソッドまたはデータメンバが見つかりません」とアラートが出てしまいます。
フォーム上のラベルに書いた文字列が取得したいのですが、どうしたらいいのでしょうか。
よろしくご教示下さい。
513名無しさん@そうだ選挙にいこう:2007/02/07(水) 13:43:55
>>512
Label1.Caption
514512:2007/02/07(水) 13:51:14
>>513
ありがとうございました。
たすかりました。
515名無しさん@そうだ選挙にいこう:2007/02/07(水) 13:59:50
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 はい
【4 VBAでの回答の可否】 否

 [A]
1: 10
2: 20
3: 40
4: 50
5: =SUM(A1:A4)

という感じのとき
4行目と5行目の間にデータを追加したいのですが
5行目を選択して行挿入をしても5行目の計算式は
=SUM(A1:A4)のまま

4行目を選択して挿入をすると計算式は自動で変わりますが
3行目と4行目の間のデータ追加になってしまいます

どっちかやって修正するしかないんでしょうか
516509:2007/02/07(水) 14:19:53
>>510 511ありがとうございました!
517名無しさん@そうだ選挙にいこう:2007/02/07(水) 14:26:45
「10684.764」 などをコピーしたら自動的に「10685」に繰り上げられています。
コピー先で、繰り上げずに小数点以下切捨てに設定するにはどうしたらいいですか?
518名無しさん@そうだ選挙にいこう:2007/02/07(水) 14:30:58
>>517
自動的に切り上げられてるんじゃなく、表示形式で、そう見えてるだけ。
セルを右クリ→セルの書式設定の一番左のタブで設定。
完全に、切り捨てたいなら、関数「=ROUNDDOWN()」。
519名無しさん@そうだ選挙にいこう:2007/02/07(水) 14:36:30
>515
=SUM(INDIRECT("A1:A"& ROW() - 1)) とか
520名無しさん@そうだ選挙にいこう:2007/02/07(水) 14:48:16
>>518
ありがとう!!
521名無しさん@そうだ選挙にいこう:2007/02/07(水) 15:44:50
>>519
ぬおーすごいです!ばっちりです
ありがとうございました
522名無しさん@そうだ選挙にいこう:2007/02/07(水) 18:58:03
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

ひとつのセルの中に
73827−47832B−1

という数字と文字を入れています。
その一つのセルの中にある文字を、

A  B  C  D  E   F   G・・・・・
7  3  8  2   7   -   4・・・・

という風に、分ける方法を教えてください
523名無しさん@そうだ選挙にいこう:2007/02/07(水) 19:08:06
>>522
A1に元データが入ってる場合。

A2に「=MID($A$1,COLUMN(),1)」、
右方向にフィル。
524名無しさん@そうだ選挙にいこう:2007/02/07(水) 19:14:31
>>523
すげえええええ
ありがとうございました。ほんとに助かりました 
この感謝の気持ちは忘れません
525501:2007/02/07(水) 20:00:19
>>503
すごーい!!カンペキです!
仕事が楽になりました。ありがとうございます!
526名無しさん@そうだ選挙にいこう:2007/02/07(水) 20:10:19
全国から喜びの声が続々と届けられています−状態だな。
527名無しさん@そうだ選挙にいこう:2007/02/07(水) 20:15:12
SUM使うときにかっこの中に数字入れる時、A〜Cは入れられるのですが、
A〜C+Eの合計出すときはどう入力するのですか?

528名無しさん@そうだ選挙にいこう:2007/02/07(水) 20:20:29
>>527
自分でやってみたらいいじゃん
=SUM(A:C,E)
529名無しさん@そうだ選挙にいこう:2007/02/07(水) 20:41:11
エクセルのアイコピーのやり方おしえてください
530名無しさん@そうだ選挙にいこう:2007/02/07(水) 20:50:50
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

  A B C D E  F・・・
1 4 5 3  4 6・・・


上のような行になった数字を、列に変換する方法を教えてください
531名無しさん@そうだ選挙にいこう:2007/02/07(水) 21:03:24
[コピー]→[形式を選択して貼り付け]→[行列を入れ替える]にチェック→OK
532名無しさん@そうだ選挙にいこう:2007/02/07(水) 21:21:55
>>531
ありがとうございました
533名無しさん@そうだ選挙にいこう:2007/02/07(水) 23:01:56
【1 OSの種類         .】 Windows XP
【2 Excelのバージョン   】 Excel 2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 VBA、1つのセル、上限、まとめる、複数のセル、マクロ
他のスレッドにもお邪魔したのですが、誰もいらっしゃらないようだったので、
こちらでも質問させてください。
例えば、A1〜A3000位まであるセルの文字列を1つのセルにまとめたいのですが、
関数の"CONCATENATE"や"=A1&A2&A3・・・・"のようなやり方では時間が掛かりすぎる為、
良い方法があれば教えてください。
総文字数は、問題無く1つのセルに入りきる量です。
534名無しさん@そうだ選挙にいこう:2007/02/07(水) 23:06:59
コピーしてメモ帳とかワープロに張り付けてそれをまたコピーしてひとつのセルに貼り付け
535名無しさん@そうだ選挙にいこう:2007/02/07(水) 23:19:05
536533:2007/02/07(水) 23:23:41
>534
ああ。
ありがとうございます。こんなに単純な事だったんですね。
とても助かりました。そして、すごく恥ずかしい。
537533:2007/02/07(水) 23:27:58
>536
レスありがとうございます。
今後の為に今からよく読みます。
538名無しさん@そうだ選挙にいこう:2007/02/08(木) 01:12:38
質問させてください。

A
2 あ
3 あ
4 い
5 あ
6 あ

 のように1つでも違う場合にA7に印を付けたいのですが、
IF(A2=A3,IF(A3=A4,IF(A4=A5,IF(A5=A6,""),"★")))
ではうまくゆかない場合があります。どうしてなのでしょうか。
(違うものの出現はランダムで、複数個ある場合もあります。)
539名無しさん@そうだ選挙にいこう:2007/02/08(木) 01:22:37
>>538
全てのIFに対して条件が偽のときの値を設定していないから
つまりその書き方では"★"が1つじゃ足りない
540名無しさん@そうだ選挙にいこう:2007/02/08(木) 01:22:57
>>538
ネストごとに判定してあげないとうまくいかないんじゃね?
=IF(A2=A3,IF(A3=A4,IF(A4=A5,IF(A5=A6,"全部同じ","★"),"★"),"★"),"★")

それか考え方変えて、A2に入力してある内容が5個なきゃ違うって考えるとか
=IF(COUNTIF(A2:A6,A2)=5,"5つ同じ","★")
541名無しさん@そうだ選挙にいこう:2007/02/08(木) 02:15:56
>>539 >>540
早速の御回答、恐縮です。。
うまくゆきました。理由も納得です。
単純なことなのに、恥ずかしいです。
COUNTIFを使うというのは洗練されている感じですね。
どうもありがとうございました。
542名無しさん@そうだ選挙にいこう:2007/02/08(木) 05:04:42
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 初心者
【4 VBAでの回答の可否】 可
【5 検索キーワード     】 VBA 入力規則 Change

以前このスレで(勤務表の作成で)お世話になった者です。
更に質問します。

いろいろ教えていただいたことを元にばっちり動くようになりました。
ところが、入力規則を設定し、リスト▼で勤務の部分を入力するように
設定したら、この下に書くマクロがほとんど動かない状態になりました。
一部、'BA勤務等を警告するのみ通常に動きますが、他が動きません。
キーボードで打ち込めば、すべて動くのですがどうしてでしょうか?
543542:2007/02/08(木) 05:07:25
This Work Bookに格納↓

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

'Targetが"E11:AH52"以外の場所で処理を中止
If Intersect(Target, Range("E11:AH52")) Is Nothing Then Exit Sub
Dim r As Long, c As Long
r = Target.Row: c = Target.Column

'"E"及び"E1"と入力したら,右隣のセルに"-"と自動入力する
If cells(r, c) = "E" Or cells(r, c) = "E1" Then cells(r, c + 1) = "-"

'右隣のセルが"-"の時,"A"〜"研"と入力したら,右隣のセルを消去する
If cells(r, c) = "" And cells(r, c + 1) = "-" Then cells(r, c + 1).ClearContents

'<中略>
544542:2007/02/08(木) 05:08:01
'BA勤務等を警告する、警告1は標準モジュールに格納されています。
If cells(r, c) = "A" And cells(r, c - 1) = "B" Then 警告1
If cells(r, c) = "B" And cells(r, c + 1) = "A" Then 警告1

'<中略>

'もし6日連続勤務以上なら冴子先生が警告する
If Intersect(Target, Range("E6:AI52")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
With Target.EntireRow
If .cells(49).Value >= 1 Then
With Assistant.NewBalloon
Assistant.Filename = "saeko.acs"
.Heading = cells(r, 1).Value & "さんが6連勤です。"
.Show
End With
End If
End With
End Sub
545名無しさん@そうだ選挙にいこう:2007/02/08(木) 05:29:41
>>542
デバッグすればいい
デバッグはコード書き始める前に覚えるべきことだから、初心者でも出来るだろ

デバッグできないならブックうp
公開しちゃまずいデータは適当なものに置換してもいいけどね

ブックうpも出来ないならさようなら
546名無しさん@そうだ選挙にいこう:2007/02/08(木) 12:15:35
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 可


セルの結合で悩んでいます。

     A      B
1   行程    1.削る
2          2.磨く
3          3.着色

このように3行になっている表を、

     A      B
1   行程    1.削る
           2.磨く
           3.着色

といった具合に、B1セル内に改行された状態で格納し、行程という項目の1行で
収めたいのです。
セルの結合を使うと「1.削る」だけになってなってしまうので困っています。
これがシート内に数十箇所あるのでうまく1セル内に格納しながら作業を進めて
行きたいのですが、何か良い方法はあるでしょうか?
547名無しさん@そうだ選挙にいこう:2007/02/08(木) 13:00:06
>>546

>>533-534 でどうよ?
548名無しさん@そうだ選挙にいこう:2007/02/08(木) 13:25:58
結合じゃなく、Alt+Enter
549名無しさん@そうだ選挙にいこう:2007/02/08(木) 13:59:57
>>547
やはりそれしかありませんか。orz
今のファイルでざっと見で80箇所ほどあるので効率化を考えてたんですが
これはキツそうですね。
550名無しさん@そうだ選挙にいこう:2007/02/08(木) 14:38:06
>>546
・A、B列に全部データがあるということ。
・B列のデータは3個ずつであること。
が確定であれば、

@C1に「=A1」
  D1に「=B1&CHAR(10)&B2&CHAR(10)&B3」
  E1に「=MOD(ROW(),3)」
  C、D、E列とも下までフィル。
Aオートフィルタ展開→E列を「1と等しくない」で絞る。
B絞った状態のC、D列の2行目より下をDeleteキーで数式削除。
Cフィルタを「全て表示」→C、D列を選択して値で貼り直す。
D今度はC列「空白セル」で絞る
E絞った状態で、全行を行ごと削除。
Fフィルタ外して、A、B、E列を削除。
551550:2007/02/08(木) 14:41:39
ごめん、よく見たら、Dで全行消さず、1行目残さないと。
あと、E列いらんなw
A列で絞れば良いんだ。すまん。
552名無しさん@そうだ選挙にいこう:2007/02/08(木) 14:43:03
80程度なら下の関数を使ってコピペでもいいかな
区切り文字は CHAR(13)&CHAR(10)

'値でセル範囲を連結
Public Function JoinValue( _
ByRef Source As Range, _
Optional ByVal Delimiter As String = "" _
) As String
Application.Volatile

Dim strJoin As String
Dim objCell As Range

For Each objCell In Source
If objCell.Value <> "" Then
strJoin = strJoin & objCell.Value & Delimiter

End If

Next objCell

If strJoin <> "" Then
JoinValue = Left$(strJoin, Len(strJoin) - Len(Delimiter))

End If

End Functiontion
553名無しさん@そうだ選挙にいこう:2007/02/08(木) 15:15:43
>546
B列じゃなくて、A列を結合すれば?
554名無しさん@そうだ選挙にいこう:2007/02/08(木) 15:22:11
1行で納めるのが目的なんでは。
555名無しさん@そうだ選挙にいこう:2007/02/08(木) 15:48:53
自分もA列を結合したほうが良いと思う
一行に収めたいなら、行列置換えで十分な気がする
556名無しさん@そうだ選挙にいこう:2007/02/08(木) 16:12:25
>546
C1に =B1&CHAR(10)&B2&CHAR(10)&B3
C1:C3を選択して下へオートフィル
選択状態のまま コピー⇒値貼り付け
選択状態のまま 編集⇒ジャンプ⇒セル選択⇒空白セル
削除⇒行全体
B列削除
557名無しさん@そうだ選挙にいこう:2007/02/08(木) 16:16:19
結合の方が処理大変だろ。
ま、Excelの結合機能や、セル内改行使う奴は、基本印刷目的だろ。
そんなのどっちでも一緒。やりやすい方法でやりゃ良い。
どっちもデータとしては使い回しの効かない糞だがな。
558546:2007/02/08(木) 17:25:12
ありがとうございます。
ファイルの随所に問題の個所があるので、教えていただいた方法を
組み合わせて試みたいと思います。
559名無しさん@そうだ選挙にいこう:2007/02/08(木) 17:28:14
セル結合は、極力使わない方が良いと思うが、
処理は、書式コピペで、そんなに大変じゃない。
560名無しさん@そうだ選挙にいこう:2007/02/08(木) 18:02:54
>>559
後学の為に教えてください。
80箇所あれば80回、F4キーしか思いつかない…。
561名無しさん@そうだ選挙にいこう:2007/02/08(木) 18:04:55
>>560
フィルのコピー→書式
562名無しさん@そうだ選挙にいこう:2007/02/08(木) 18:07:27
>>561
それじゃ行数固定しか無理っすよね。
563名無しさん@そうだ選挙にいこう:2007/02/08(木) 18:22:27
>>562
コピー元の範囲を選択し右クリック→コピー
対象セルをCtrlを押しながら順次クリック(希望範囲の左上角に該当するセルだけで良かったはず)
選択が完了したら右クリック→形式を選択して貼り付け→書式→OK

ってのはダメ?
564名無しさん@そうだ選挙にいこう:2007/02/08(木) 18:26:16
行数が固定じゃないなら無理だな。

VB無しじゃ、
{選択→F4→}×α
しかやりようがない。
565542:2007/02/08(木) 18:29:32
http://555.sytes.net/up/img/373.zip

Upしました。遅くなってすみませんでした。
566名無しさん@そうだ選挙にいこう:2007/02/08(木) 19:33:53
こんばんわ。

約6万データをグラフ化するのに
突出していた部分のひげを手動でとっていました。

それを間違えて消してしまった。
簡単に取れる方法ないですか?泣きそう。

なだらかなグラフを作りたいのです。
手動でとったあと、移動平均を掛けようと思ってたんです。

わー、だめだ。説明も悪い。
567名無しさん@そうだ選挙にいこう:2007/02/08(木) 20:23:00
>>565
> どうしてでしょうか?
 セルへの代入部分で
 「アプリケーション定義またはオブジェクト定義のエラーです。」
 というエラーが発生しているから。(非通知)

原因
 CountXというユーザー定義関数。

対処法
 いろいろ。このくらいは自分で見つけよう。


それにしても、やたらと冗長な処理を書くのが好きなんだね。
>>543-544で'<中略>した部分に書いてある数十行のコードなんて10行も使わずに書けるのにさ。
他にも引数取れば1つで済む関数を幾つも並べたり。
568名無しさん@そうだ選挙にいこう:2007/02/08(木) 20:27:34
>>566
日本語でおk

予想で書くが、グラフの元データが万を超えるなんて、
何の意味もないかと。
569542:2007/02/08(木) 20:40:19
>>567
ご指導ありがとうございました。勉強します。
570名無しさん@そうだ選挙にいこう:2007/02/08(木) 20:57:19
すみません、VBAのことで質問です。
リンク先のプログラムで、コマンドボタンを押した後に表示されるフォーム(モーダレス)の
コマンドボタンを押して処理を実行中にシートをダブルクリックしたりすとエラーで落ちちゃう
んですが、これを防ぐにはフォームをモーダルでshowするしかないですかね?

http://555.sytes.net/up/img/375.zip
571名無しさん@そうだ選挙にいこう:2007/02/08(木) 21:07:36
>>570
ダブルクリックする暇ないと思うけど…
無理やりダブルクリックしたらエラーメッセージが出るだけだった
572名無しさん@そうだ選挙にいこう:2007/02/08(木) 21:12:10
>>570
ダブルクリックするコツを教えてくれ
俺には無理だった・・・
573名無しさん@そうだ選挙にいこう:2007/02/08(木) 21:13:59
エラーを無視したら?
574570:2007/02/08(木) 21:27:16
>>571>>572
ごめん、upする奴だからあんまり回しすぎると迷惑かと思って500しかカウントしてないです
コマンドボタンを押した後にすぐシートのセルをダブルクリックすると1004のエラーがでます

多分、Rangeプロパティの参照がおかしくなってるからだと思うんですが・・・

>>573
実際は他にも処理が走るので、その処理のエラーまで無視できないんです。
575名無しさん@そうだ選挙にいこう:2007/02/08(木) 21:30:21
みなさまこんばんは。
エクセル2003使用者です。
質問なのですが
>相対参照 ある数式を別の列または行にコピーすると、その数式の中の相対セル参照は変更されます。
とマイクロソフトのサイトに書いてあったのですけど

以下の式だとコピーしても行が9のままで10、11…と行が変更になって欲しいところがそのまま9から変わりませんでした。

=IF(ISNUMBER(FIND("買",E9)),I9*J9, "-I9*J9")

これをコピーでうまく入力する方法はありませんか?
576名無しさん@そうだ選挙にいこう:2007/02/08(木) 21:44:22
>>575
=IF(ISNUMBER(FIND("買",E9)),I9*J9, "-I9*J9")
                        ↑
           ここにスペースが入ってるから。

ズレそうだなぁ。
ダブルクォーテーションの前。
577名無しさん@そうだ選挙にいこう:2007/02/08(木) 21:52:56
スペースが入ってるのもアレだが、計算式に
ダブルクォーテーションがついてるの自体、
表の作りとして、間違ってる予感w
578名無しさん@そうだ選挙にいこう:2007/02/08(木) 22:03:35
>>575
("買",E9)),I9*J9
ここは数式だから変わるけど

"-I9*J9"
この部分は文字列だから変わらないんぢゃなかったっけ?
579名無しさん@そうだ選挙にいこう:2007/02/08(木) 22:24:14
>>542
まだ見てらっしゃるでしょうか?

とりあえず、CountXは関係ないと思いますよ。
どうやってCountXが動いてるのかすごい知りたいですが…。

おそらく入力規制中の値の変更は受け付けないようです。(アクティブセルの変更なんかもできませんでした。)
まだ解決策は考えていませんが(考えないかもしれませんが…。)
入力規制が終わったタイミングで、改めて値が変更されたセルの値を調べる形にすることに
なるんじゃないかと思います。
この間そういうのと同じようなツール作ったんですけども、会社いかないとどんなんだったか思い出せません…。
580名無しさん@そうだ選挙にいこう:2007/02/08(木) 22:27:20
日本語でおkですね、すみません言い直します。


入力規制が終わったタイミング→カーソルが移動したタイミング
です。
581名無しさん@そうだ選挙にいこう:2007/02/08(木) 23:37:36
誰か徹夜になる前に助けて欲しい…(;_;)
Excelであるコード番号を入れたら、それに該当する品名が隣りのセルに出るようにするには、
どうしたら出来る?特急で教えて欲しいよ〜。
582名無しさん@そうだ選挙にいこう:2007/02/08(木) 23:41:44
テーブルを作って、それを参照するように
すれば良いと思うよ。
583名無しさん@そうだ選挙にいこう:2007/02/08(木) 23:42:25
?LOOKUP
584名無しさん@そうだ選挙にいこう:2007/02/08(木) 23:43:00
急いでるならぐぐれ!
585名無しさん@そうだ選挙にいこう:2007/02/08(木) 23:44:35
>>583
優し杉
586名無しさん@そうだ選挙にいこう:2007/02/08(木) 23:46:28
おまいら特急だぞ!ここはスルーだ!
587581:2007/02/08(木) 23:52:27
ありがとうごぜいました。みんな!
速攻でできました!
588名無しさん@そうだ選挙にいこう:2007/02/08(木) 23:55:42
VBAでこれのアスタリスクってどういう機能なの?

Dim Lpstr As String * 5000
589名無しさん@そうだ選挙にいこう:2007/02/08(木) 23:56:03
>>579
おいらはよくわからないけど、CountXを消したら問題なく動いたよ
やりかたは3月シートの保護を解除したらAW15のCountX式を消す
次にO14,O15でそれぞれEを選ぶ
CountXを消した15行目は右となりに-が出るけど、14行目はちゃんと動かない
AW14の式を消してAW15の式を残せば、結果もそれに追従する
590名無しさん@そうだ選挙にいこう:2007/02/09(金) 00:02:30
>>588
固定長文字列

その意味についてはググれ
591名無しさん@そうだ選挙にいこう:2007/02/09(金) 00:05:48
テーブル作ってLookup関数使えはいいのか〜!さっそくやってみよっ。
592名無しさん@そうだ選挙にいこう:2007/02/09(金) 00:10:33
vlookupな。
593579:2007/02/09(金) 00:31:10
>>589
どうもです、申し訳ない。
CountXがどこで動いてるのかわかりました。
質問者さんとは関係ないですけど感謝いたします。あんな技あったんですね…。

CountXは必要な処理っぽかったのでそのまま残すと考えて、
共通変数をひとつとり、
今"-"をいれてるところでフラグをON
Selection_ChangeでフラグチェックしてONだったら"-"をTargetの右上に挿入→フラグをOFF
って感じで考えてたもんであの答えに行き着いてるわけです。
今試してみて無事に動いたのでまぁ悪かないかと…。
594名無しさん@そうだ選挙にいこう:2007/02/09(金) 01:06:14
【1 OSの種類         .】 Windows*XP
【2 Excelのバージョン   】 Excel**
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 積み上げグラフ 積み上げ横棒 入れ替え 順序

積み上げ横棒グラフを作成したのですが、
割合が多いものを左端に寄せたい場合はどうすればいいのでしょうか?
データ系列の書式設定で系列の順序を入れ替えると、
入れ替えたくない項目の系列まで入れ替わってしまいます。
分かりにくいのですが、例で言うと下記のような感じのグラフにしたいです。
(1月、2月、3月というのは項目です。)

今のグラフ
1月 | a200 b150 c100 |
2月 | a100 b150 c150 |
3月 | a150 b200 c150 |
↓こう並べ替えたい
1月 | a200 b150 c100 |
2月 | b150 c150 a100 |
3月 | b200 a150 c150 |
595名無しさん@そうだ選挙にいこう:2007/02/09(金) 03:32:03
>>594
元のデータを並べ替え

並べ替えの方法くらいは自分で考えろ
596542:2007/02/09(金) 07:26:33
>>579,589,593
ありがとうございます。返信もせず申し訳ありませんでした。

確かにCountXが問題になっています。だがその先が皆目見当が付きません。
とりあえず会社に行きます。いい方法があったら教えて下さい。
597542:2007/02/09(金) 08:33:33
>>593
解答を提示していただいたのによく読まないで出勤してしまいました。
お詫び申し上げます。会社でやってみます。
598名無しさん@そうだ選挙にいこう:2007/02/09(金) 10:17:46
VBAでWebにあるファイルをダウンロードして指定したフォルダに保存するには、どうしたらいいですか?
599test:2007/02/09(金) 11:10:21
TEST
600名無しさん@そうだ選挙にいこう:2007/02/09(金) 11:15:47
すみません。教えてください。

ひとつのパソコンで作った計算式が入ったエクセルファイルを、別のPCで開くと、計算式のところが「###」となってしまいます。
計算式は「=IF(I5=0,"",QUOTIENT(L5,I5))」こんな感じのもので、ちゃんと計算されるものと、「###」になるものがあります。
何か設定が必要なのでしょうか?

どちらのパソコンも2003です。よろしくお願いいたします。
601名無しさん@そうだ選挙にいこう:2007/02/09(金) 11:16:45
セルの幅と書式設定見ろ
602名無しさん@そうだ選挙にいこう:2007/02/09(金) 11:27:09
ありがとうございます。
セル幅は問題なさそうなので、書式設定を確認しようとしたのですが、「書式設定」がアンクリッカブルになっています。
これは何かの設定なのでしょうか。

また、セル幅も変えられないようになっているようです。

すみません。エクセルをあまりつかったことがなくて・・・

よろしくお願いいたします。
603名無しさん@そうだ選挙にいこう:2007/02/09(金) 11:28:45
604名無しさん@そうだ選挙にいこう:2007/02/09(金) 11:41:24
ありがとうございます。

なんか、分析ツールっていうものをアドオンすると使えるようになりました。

助かりました・・・
605福さん:2007/02/09(金) 11:58:44
excel で ソートするとハイフンは」無視されるのですか?
半角の英数字です。無視しない方法を教えて下さい。
606名無しさん@そうだ選挙にいこう:2007/02/09(金) 12:15:40
>>598
>>2・7
607福さん:2007/02/09(金) 15:56:26
VBAでAシートで実施していることをBシート(同じブック)で実施しようと
ActivateやらselectなどやってみたのですがAシートでしか動きません。
助けて下さい。
608名無しさん@そうだ選挙にいこう:2007/02/09(金) 15:57:57
>605
A.EXCEL95をつかう
B.自分でソートマクロを組む
C.置換⇒ソート⇒置換
D.あきらめる
609名無しさん@そうだ選挙にいこう:2007/02/09(金) 16:11:20
>>607
 >>1★1-4
 >>2・8、・3
610名無しさん@そうだ選挙にいこう:2007/02/09(金) 16:33:30
この時間に自治厨が現れたかw

>>607
VBEのAシートの所に書いてあるのを、Bシートの所にも
コピペすりゃ、だいたいそっちで動くよ。
611名無しさん@そうだ選挙にいこう:2007/02/09(金) 16:34:20
Excel2003です。
急に、斜め方向にドラッグして選択ができなくなりました。
縦か横にしか選択範囲が動かず、必ずオートフィルオプションが出ます。
特にオプションなど変えてないのですが・・・
再起動しても変わらず、どのファイルを使っても同様です。

よろしくお願いします。
612名無しさん@そうだ選挙にいこう:2007/02/09(金) 16:44:14
>>611
マウスを刺し直す
別のマウスに変えてみる
613名無しさん@そうだ選挙にいこう:2007/02/09(金) 16:47:06
610
614名無しさん@そうだ選挙にいこう:2007/02/09(金) 16:51:28
>>611
Excelだけじゃなく、OSを再起動する。
615名無しさん@そうだ選挙にいこう:2007/02/09(金) 19:14:41
散らかしたまま、飲みに逝ってしまったか、、、3連休だもんな、、
616名無しさん@そうだ選挙にいこう:2007/02/09(金) 19:21:32
世間は3連休か。
言い身分じゃないか、え?オマエら。

俺?俺はあれだ。今日で何連休目だこれ。
617名無しさん@そうだ選挙にいこう:2007/02/09(金) 19:28:23
ちょっwそれ、お前ニー(ry
618名無しさん@そうだ選挙にいこう:2007/02/09(金) 20:04:25
【1 OSの種類         .】 WindowsXP
【2 Excelのバージョン   】 Excel2003
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード     】 計算・演算・割り算
ttp://www.uploda.org/uporg686737.png.html
これのB2の値でB2〜B22をそれぞれ割りたい(Bn/b2)んですが、一気にやる方法はありませんか?
619名無しさん@そうだ選挙にいこう:2007/02/09(金) 20:38:09
すみません。
関数の引数でセル範囲指定する場合ってありますよね。
あのセル範囲指定を簡単に指定する方法ってありますか?

たとえば、ある2つのセルにそれぞれA2、A10と入れれば、
その二つのセルを参照して関数の引数のセル範囲指定(A2:A10)できるような方法なんですが・・・
620名無しさん@そうだ選挙にいこう:2007/02/09(金) 20:59:30
>>618
俺が頭悪いのか、やりたいことが今一つ分からないんだけど、
つまりこういう事?
http://www.google.co.jp/search?num=50&hl=ja&inlang=ja&q=Excel+%E7%B5%B6%E5%AF%BE%E5%8F%82%E7%85%A7&lr=
621名無しさん@そうだ選挙にいこう:2007/02/09(金) 21:01:03
>>619
INDIRECT関数をヘルプとGoogleで見てみよう。
622名無しさん@そうだ選挙にいこう:2007/02/09(金) 21:10:34
>>621
レスありがとうございます。
やっぱりINDIRECTですか・・・ヘルプみたんですけど、それみたら逆にわからなくなってきてしまったもんで・・・
調べてみます。
ありがとうございました。
623名無しさん@そうだ選挙にいこう:2007/02/09(金) 23:28:03
>>576さん
>>577さん
>>578さん
ありがとうございます。
今おっしゃるとおりにやってみましたらできました。
624名無しさん@そうだ選挙にいこう:2007/02/10(土) 06:53:49
>>622
A1=B1
A2=B10
A3=SUM(INDIRECT(A1&":"&A2))
これでB1からB10の合計がA3にはいる
625名無しさん@そうだ選挙にいこう:2007/02/10(土) 09:29:13
とあるExcelファイルを開こうとしたとき、「ファイルエラー:データが失われた可能性があります」
ってエラーメッセージが出てきて開かない。ファイルが壊れているのかを確認しようと、もう1台の
PCにその開かないExcelデータを移動して試してみたら、今度は開いた。ちなみにデータが開かない方のPCは
WinXP (SP2) Excel2003で、データが開いた方のもう1台のPCはWin98 Excel2002。
それでWin98の方で開くときに「このブックには、ほかのデータソースへのリンクが設定されています。」って
メッセージが出てくるんだが、これはデータが開く開かないに関係があるのか?

誰か詳しい人教えてください
626名無しさん@そうだ選挙にいこう:2007/02/10(土) 12:14:23
【1 OSの種類         .】 WindowsXPsp2
【2 Excelのバージョン   】 Excel2007
【3 VBAが使えるか    .】 いいえ
【4 VBAでの回答の可否】 否

Ctrl+ページダウン・アップでのショートカットキーを押しても反応がありません・・
よろしくお願いします。
627名無しさん@そうだ選挙にいこう:2007/02/10(土) 12:16:26
>>626
>>2・6
628名無しさん@そうだ選挙にいこう:2007/02/10(土) 14:04:50
1 | 2
AB | CD

という表があったとしまして,数字の場合は単純に合計(1+2=3),文字の場合はABCDと文字をつなぎ,どちらも同じ計算式で行いたいのですが,どうやったらよいでしょうか?
オートフィルでさくっとやる必要があります.
どなたか教えてください.
629名無しさん@そうだ選挙にいこう:2007/02/10(土) 14:12:16
>>620
あー、すみません。自己解決しました。
ありがとうございます。
630名無しさん@そうだ選挙にいこう:2007/02/10(土) 14:32:35
>628 A、B列で文字と数値の混在はないものとする。

=IF(ISNUMBER(A1),A1+B1,A1&B1)
631名無しさん@そうだ選挙にいこう:2007/02/10(土) 14:51:02
>>628
その1とか2とかABってのはその文字ひとつでひとつのセル?
A1=1、A2=2でA1+A2ってことならば

Function test(target As Range)
If IsNumeric(target.Offset(0, -1).Value) And IsNumeric(target.Offset(0, -2).Value) Then
test = target.Offset(0, -2).Value + target.Offset(0, -1).Value
Else
test = target.Offset(0, -2).Value & target.Offset(0, -1).Value
End If
End Function

かのぅ…。
632名無しさん@そうだ選挙にいこう:2007/02/10(土) 15:10:33
VLOOKUPでシート内を検索しているのですが、
VLOOKUPの戻り値はセルの値ですよね?

ここでセルの値ではなくセルの座標を欲しいときはどうしたらいいんでしょうか?
よろしくお願いします。
633名無しさん@そうだ選挙にいこう:2007/02/10(土) 15:33:29
>>632
MATCHとかADDRESSとか
634名無しさん@そうだ選挙にいこう:2007/02/10(土) 15:52:16
>>628
A1に 1 でA2に 2 とか  A1に 1 でA2に CD とか
A1に AB でA2に CD とか  A1に AB でA2に 2 とかだったら

A3に =IF(AND(ISNUMBER(A1),ISNUMBER(A2)),A1+B1,A1&B1)
635名無しさん@そうだ選挙にいこう:2007/02/10(土) 15:55:26
>>634 ごめん

× A3に =IF(AND(ISNUMBER(A1),ISNUMBER(A2)),A1+B1,A1&B1)

○ A3に =IF(AND(ISNUMBER(A1),ISNUMBER(B1)),A1+B1,A1&B1)
636名無しさん@そうだ選挙にいこう:2007/02/10(土) 16:44:41
マクロの記述で
Range("F8").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

これが上手く動いてないようなんですが、何故でしょう。

やろうとしてる事は
A1に在る顧客番号をA4に【=A1】を使用して、反映です。

イマイチ言ってる事がわからないと思いますが、これだけで理解していただける方教えてください。
637名無しさん@そうだ選挙にいこう:2007/02/10(土) 17:24:42
>>636
理解できませんが
>A1に在る顧客番号をA4に【=A1】を使用して、反映
ということなら
Sub test()
  Range("A4").FormulaR1C1 = "=R[-3]C"
End Sub
638名無しさん@そうだ選挙にいこう
>>611です
回答くださったかたありがとうございました。
OS再起動も試しました。
また、複数台のマシンで
同じ現象が出ているのでマウスとは考えにくいかなと。
再インスト試してみます。